У меня есть функция, которая устанавливает вызов API, а затем передает эту функцию в функцию повтора, которая выполняет вызов и повторяет вызов, до 5 раз, если он не удался.
public someAPICall() {
const promiseFunction = () => axios.post('/some/path/', {
headers: {
//some headers in here
},
});
return executePromise(promiseFunction, 5);
}
private async executePromise(promiseFunction, numberOfTimesToTryAgain) {
try {
// execute api call
return await promiseFunction();
}
catch (error) {
if (retries > 0) {
// try api call again if it has failed less than 5 times
return executePromise(promiseFunction, --numberOfTimesToTryAgain);
}
return error;
}
}
I Я хотел бы проверить someAPICall
и посмеяться над результатами вызова топора ios, чтобы потерпеть неудачу определенное количество раз, используя шутку. Я могу смоделировать вызов ax ios .post в моем тестовом файле, выполнив следующее:
jest.mock('axios');
mockPost = jest.fn(() => {});
(<jest.Mock>axios.create) = jest.fn(() => {
return {
post: mockPost
};
});
Но как я могу сделать так, чтобы почтовый вызов не удался, например, 3 раза, а затем успешно?