Sinon JS тестирует асинхронную функцию
Я пытаюсь проверить функцию, которая содержит асинхронные вызовы. Я пытался использовать setTimeout и sinon.useFakeTimers();
но не смог многого добиться.
Первый асинхронный вызов - это вызов API, выполненный с axios
это издевается, используя nock
, Но тест завершается до того, как будет выполнена вся функция.
Вот мой тест
describe("endpoint request", () => {
beforeEach(() => {
nock("http://endpoint.com")
.get("/params")
.reply(200, response);
});
it("should return a receipt", function() {
let req = httpMocks.createRequest({
params: {
locale: "uk-en",
surname: "presley"
}
});
const spy = (res.writeHead().end = sinon.spy());
getPNGReceipt(req, res);
expect(spy.calledOnce).toEqual(true);
});
});
Внутри getPNGReceipt
Я делаю запрос на получение http://endpoint.com/params
но expect(spy.calledOnce).toEqual(true);
называется раньше getPNGReceipt(req, res);
отделки.
Как я мог сделать sinon
ждать, прежде чем выполнить expect(spy.calledOnce).toEqual(true);
?