jest and superagent problems

192 views
Skip to first unread message

rak...@gmail.com

unread,
May 19, 2015, 4:18:19 AM5/19/15
to jes...@googlegroups.com
Hi,
I have problem using jest tests with superagent. I don't have to mock superagent but only run function which use this extension to load feed and next run some tests on reactjs components. It works great when I use jest.autoMockOff(). But when I try to disable special modules like:
jest.dontMock('superagent');

jest.dontMock('debug');
jest.dontMock('tty');
jest.dontMock('util');
jest.dontMock('stream');
jest.dontMock('fs');
jest.dontMock('delayed-stream');
jest.dontMock('mime');
jest.dontMock('path');

jest.dontMock('url');
jest.dontMock('request');
jest.dontMock('http');
//some else???

I still have error:
[TypeError: Object function request(method, url) {
// callback
if ('function' == typeof url) {
return new Request('GET', method).end(url);
}

// url first
if (1 == arguments.length) {
return new Request('GET', method);
}

return new Request(method, url);
} has no method 'get']

It's my example code

var request = require('superagent');
....


var feedPromise = function(ApiRoot, query){
return new Promise(function(resolve, reject) {
request
.get(ApiRoot)
.query(query)
.set('Accept', 'application/json')
.end(function(err, res) {
if (err) {
reject(err);
}
else if (_.isEmpty(res)) {
reject(res);
}
else {
resolve(res);
}
});
});
}


pit('is feed working', function() {
var ApiRoot = ...;
var query = ...;
return feedPromise(ApiRoot, query).then(
function(response) {
expect(Object.keys(response)).toEqual(...);
},
function(error) {
...
}
);
});

It's because some submodules of superagent are automatically mocked.
I see that in debuggeer, that Response, agent and Part functions of request are mocked. I don't know why?
Anybody knows how to resolve this problem?
Thanks
Rafal
Reply all
Reply to author
Forward
0 new messages