Я пытаюсь проверить функцию, которая содержит асинхронные вызовы. Я пытался использовать 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);
?