Если у меня есть модуль, который возвращает обещание.Я хочу высмеять различные результаты этого обещания, чтобы протестировать функцию, частью которой является этот модуль.Я смоделирую модуль следующим образом:
jest.mock('../request', () => {
return () => new Promise((resolve, reject) => {
return resolve({
response: { ok: true }
});
});
});
Мой первый тест выполняется
test("The function resolves", () => {
const initialState = { apiData: getState("postData", {}, "ready", "POST") };
const store: any = mockStore(initialState);
return expect(
performApiRequest("postData/", {}, { data: "json" })(dispatch, () =>
store.getState()
)
).resolves.toBeUndefined();
});
Проблема теперь в том, чтобы протестировать другую функцию, где разрешаемое значение должно быть другим,например {response: {ok: false}}.
Я уже пробовал разные вещи.Сначала оберните макет в функцию и дайте ответ в качестве аргумента.-> не удается для mocks не может вывести из области видимости переменных.
Я пытался вызвать jest.doMock в тесте, но это не правильно запускает запрос.
Я пытался сделать
const mockResponse = jest.fn();
jest.mock("../request", () => {
return () =>
new Promise((resolve, reject) => {
return resolve({
mockResponse
});
});
});
А затем вызовите mockResponse.mockReturnValueOnce (значение).
Успех пока отсутствует.Кто-нибудь видит выход?