Я пытаюсь понять, как заставить моксиос работать с обещанием. Я тестирую эту функцию:
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"
});
})