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);?

0 ответов

Другие вопросы по тегам