rak...@gmail.com
unread,May 19, 2015, 4:18:19 AM5/19/15Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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