Al burlarse de un error 404, el resultado es
UnhandledPromiseRejection no capturado: este error se originó al lanzar dentro de una función asíncrona sin un bloque catch, o al rechazar una promesa que no se manejó con .catch(). La promesa rechazada con el motivo "Error: error".
Configurar un simulacro básico
const mockAccountEnquiry = () => { axios.post.mockImplementation(async (url, testParams) => { if (url === 'https://blah/v1/payIDEnquiry') { if (testParams.payID === 'not-found') { jest.fn().mockReturnValue(Promise.reject(Error('error'))); } return { status: 200, data: { AccountStatus: { nppReachable: testParams.nppReachable, }, }, }; } }); };Crear un caso de prueba
it('Failed request', async() => { mockAccountEnquiry(); const response = await backend.handler(testData); expect(axios.post.mock.calls[0][0]).toBe(enquiryUrl); });¿Cómo simular la solicitud 404?
Usar https://www.npmjs.com/package/axios-mock-adapter hará que la API simulada sea muy simple.
var axios = require("axios"); var MockAdapter = require("axios-mock-adapter"); var mock = new MockAdapter(axios); mock.onPost(enquiryUrl).reply(404); it('Failed request', async() => { const response = await backend.handler(testData); expect(mock.history.post[0].url).toBe(enquiryUrl); });