Как проверить возвращение обещания с Моксиосом и шуткой - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь понять, как заставить моксиос работать с обещанием. Я тестирую эту функцию:

const test_mock_req = () => {
  return API.get('/internal/timeo/api/v0/actions').then(response => response);
};

и вот тест, который я пытаюсь настроить с помощью jest и moxios. Когда я использую await/async, он работает:

it('test_mock_req', async () => {
  moxios.stubRequest('/internal/timeo/api/v0/actions', {
    status: 200,
    response: 'A mocked response'
  });
  const result = await test_mock_req();
  expect(result.data).toEqual('A mocked response');
});

Однако, когда я пытаюсь протестировать его без async/await, но используя .then, он не работает:


it('test_mock_req without await/async', () => {
  moxios.stubRequest('/internal/timeo/api/v0/actions', {
    status: 200,
    response: 'A mocked response'
  });

  const result = test_mock_req();

  result.then(resp => {
    console.log(resp);
    console.log('why dont you print');
    expect(resp.data).toEqual('A mocked response');
  });
});

Мне никогда не удается console.log(resp) или console.log("why dont you print") Почему это так? Что мне здесь не хватает? Я также пытался обернуть stubRequest в moxios.wait, но он не работает лучше:

   moxios.wait(() => {
      const request = moxios.requests.mostRecent()
      request.respondWith({
        status: 200,
        response: "A mocked response"
      });
    })
...