Я пытаюсь выяснить, как написать jest-тест для этого кода, который написан вне класса в компоненте реагирования.
export const getContent = async (id) => {
const idCheck = id ? id : '';
return (
apiCall('get', 'api/content', null, { id: idCheck }).then((response) => {
const addingKey = addKey(response.data.getContent);
return addingKey;
}))
};
Это написано вне класса, и у меня естьимпортировал метод в мои тесты следующим образом:
import { getContent } from '../../../client/pages/content';
Если я запускаю эти тесты, я получаю, что response.data.getContent не определен, что имеет смысл, потому что я не издевался и не шпионил за apiCall.
const content = await getContent();
expect(content).toEqual(response);
Итак, я пытаюсь высмеивать ответ, который мне дает apiCall, чтобы я мог отправить ему разные данные, чтобы проверить, работает ли addKey, как я ожидаю.
Я пытался издеваться над apiCall и пытался шпионить за ним, но я не думаю, что понимаю, как это сделать правильно:
const spy = jest.spyOn(getContent, 'apiCall');
apiDependency.apiCall = jest.fn(() => response)