Вам нужно правильно смоделировать модуль node-fetch
.Поскольку он находится в node_modules
, вам нужно поместить node-fetch
в папку __mocks__
на том же уровне, что и node_modules
, например:
├── node_modules/
│ ├── node-fetch/
├── __mocks__/
│ ├── node-fetch.js
Внутри node-fetch.js
положить:
export default jest.fn();
Наконец, импортируйте fetch
в свой тестовый файл и смоделируйте его следующим образом:
import Example from './Bla';
import { shallow } from 'enzyme';
import React from 'react';
import fetch from 'node-fetch';
/**
* Important! Import the mocked function.
* Start the mocking with jest.mock('node-fetch').
* Stop the mocking with jest.unmock('node-fetch').
*/
jest.mock('node-fetch');
test('should call fetch()', () => {
const id = 1
const value = 50
const wrapper = shallow(<Example />)
wrapper.instance().changeIt(id, value)
expect(fetch).toHaveBeenCalled() // now it works
})
Подробнее о насмешке node_modules
пакетов в шутку здесь.