I'm trying to verify that my method is correctly invoking another, imported method. For the life of me, I can't figure out how to mock the imported method using Jest.
Method I want to test
LandingPageManager.ts
import {getJSON} from './getJSON';
public fetchData(url: string) {
getJSON(url);
}
Method I want to mock
getJSON.ts
export function getJSON(url: string) {
// XHR requests logic
}
Test method
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();
});
});
Error I'm getting
jest.fn() value must be a mock function or spy
I've tried setting up the mock a variety of different ways. But I can't seem to get the syntax right.
Can anyone help point me in the right direction? I feel like this should be possible.