tengo esta prueba:
await waitFor(() => { expect(store.getActions()).toMatchObject([{ type: "TRY_INDEX_ROLES_ITEMS", }, { type: "INDEX_ROLES_ITEMS_FAILED", error: "Error: Request failed with status code 401" }]); });Pero me sale en la consola:
expect(received).toMatchObject(expected) - Expected - 1 + Received + 1 Array [ Object { "type": "TRY_INDEX_ROLES_ITEMS", }, Object { - "error": "Error: Request failed with status code 401", + "error": [Error: Request failed with status code 401], "type": "INDEX_ROLES_ITEMS_FAILED", }, ]La diferencia es la notación de "matriz" que realmente recibo.
En efecto, esta es mi acción bajo prueba:
return this.getApi() .index(id) .then(data => { dispatch({ type: `INDEX_ROLES_ITEMS_SUCCEEDED`, data }); }) .catch(error => { dispatch({ type: `INDEX_ROLES_ITEMS_FAILED`, error, }); })Y me sale error de:
axiosInstance.interceptors.response.use( response => { return response; }, error => { return Promise.reject(error); } ); No quiero cambiar el error devuelto con error.toString() (puede funcionar con error.toString(), acabo de probarlo antes), quiero devolver el error de mi Axios y resolver esa prueba.
Gracias
Como está utilizando toMatchObject , puede hacer esto.
expect(store.getActions()).toMatchObject([ { type: 'TRY_INDEX_ROLES_ITEMS', }, { type: 'INDEX_ROLES_ITEMS_FAILED', error: { message: 'Request failed with status code 401' }, }, ]);O
expect(store.getActions()).toMatchObject([ { type: 'TRY_INDEX_ROLES_ITEMS', }, { type: 'INDEX_ROLES_ITEMS_FAILED', error: expect.objectContaining({ message: 'Request failed with status code 401', }), }, ]);No estoy seguro de si eso es lo que está pidiendo, pero ¿ha intentado simplemente usar el mensaje de error?
return Promise.reject(error.message);