@Vlad_beg

Как правильно замокать node-fetch в Jest?

Не могу разобраться почему происходит запрос на API вместо установленного мок ответа.
И как правильно а данном случаи замокать node-fetch?
Брал так же пример из документации (https://jestjs.io/docs/bypassing-module-mocks) но была ошибка mockReturnValue is not a function
Пытаюсь протестировать следующий модуль

import fetch from 'node-fetch';

export const createUser = async () => {
	const response = await fetch('http://website.com/users', { method: 'POST' });
	const userId = await response.text();
	return userId;
};


файл с тестом

import { jest } from '@jest/globals';
import { createUser } from '../createUser';


const mockFetch = jest.fn().mockReturnValue(
	Promise.resolve({
		json: async () => ({
			id: 4
		})
	})
);

test('createUser calls fetch with the right args and returns the user id', async () => {
	const userId = await createUser();
	expect(mockFetch).toHaveBeenCalledWith('http://website.com/users', {
		method: 'POST'
	});
	expect(userId.id).toBe(4);
});
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы