I am using FetchMock with Mockery as Node 4 module, hence I need to get a handle on the mocked fetch() function.
'use strict';
var fetchMock = require('fetch-mock');
var mockery = require('mockery');
describe('fetch mockery', function () {
beforeEach(function () {
mockery.enable({useCleanCache: true});
var myMock = fetchMock
.mock('http://auth.service.com/user', '{"foo": 1}');
mockery.registerMock('node-fetch', myMock.getMock()); <-- undefined
});
afterEach(function () {
fetchMock.restore();
mockery.deregisterMock('node-fetch');
mockery.disable();
});
it('should mock a request', function () {
var goFetch = require('../lib/fetchsample'); // just a call to fetch in a separate module
return goFetch('http://auth.service.com/user').then(function (response) {
return response.json();
}).then(function (json) {
console.log(json);
});
});
});
mockery.registerMock('node-fetch', myMock.mockedContext.fetch);
/**
* getMock
* Returns a reference to the stub function used to mock fetch
* @return {Function}
*/
getMock () {
return this.mockedContext.fetch;
}