Я пытаюсь убедиться, что мой метод правильно вызывает другой импортированный метод. На самом деле, я не могу понять, как издеваться над импортированным методом с помощью Jest.
Метод, который я хочу проверить
LandingPageManager.ts
import {getJSON} from './getJSON';
public fetchData(url: string) {
getJSON(url);
}
Метод, который я хочу издеваться
getJSON.ts
export function getJSON(url: string) {
// XHR requests logic
}
Метод испытания
LandingPageManager.test.ts
import 'jest';
import {getJSON} from '../../../src/web/getJSON';
import {LandingPageManager} from '../../../src/web/LandingPageManager';
describe('fetchData', () => {
let manager = new LandingPageManager();
it('passes the correct URL to getJSON', () => {
const getJsonSpy = jest.mock('../../../src/web/getJSON', jest.fn());
manager.fetchData('sampleValue');
expect(getJsonSpy).toHaveBeenCalledWith('sampleValue');
getJsonSpy.restoreAllMocks();
});
});
Ошибка, которую я получаю
jest.fn() value must be a mock function or spy
Я пытался настроить макет разными способами. Но я не могу понять синтаксис правильно.
Может кто-нибудь помочь направить меня в правильном направлении? Я чувствую, что это должно быть возможно.