Для проекта я пытаюсь протестировать сценарий, согласно которому запрос API возвращает неверный ответ. Проблема в том, что мой макет продолжает возвращать разрешенное значение вместо отклоненного обещания. Даже когда я очищаю свои макеты, он все равно возвращает ложный ответ ОК. Как это происходит?
jest.mock("axios");
const mockedAxios = axios as jest.Mocked<typeof axios>;
beforeEach(() => {
mockedAxios.get.mockResolvedValue(okResponse);
});
it("should throw an error on bad request", async () => {
const error = new Error("Invalid API Key");
mockedAxios.get.mockClear();
mockedAxios.get.mockImplementationOnce(() => Promise.reject(error));
const res = searchGifs({ // This function uses axios.get()
query: "something else",
limit: 12,
offset: 0,
});
await expect(res).rejects.toThrow(error);
});
Результат моего теста:
expect(received).toThrowError()
Matcher error: received value must be a function
Received has type: object
Received has value: {"data": [[Object], [Object]], "meta": {"msg": "OK", "status": 200}, "pagination": {"count": 12, "offset": 0, "total_count": 231}}
Получен ответ «ОК». Почему он не возвращает отклоненное обещание?