mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 04:04:06 -08:00
fix(core): Ensure status
on Axios errors is available to the BE (#9015)
This commit is contained in:
parent
042aa62fc2
commit
744327c20d
|
@ -848,6 +848,11 @@ export async function proxyRequestToAxios(
|
||||||
error.message = `${response.status as number} - ${JSON.stringify(responseData)}`;
|
error.message = `${response.status as number} - ${JSON.stringify(responseData)}`;
|
||||||
throw Object.assign(error, {
|
throw Object.assign(error, {
|
||||||
statusCode: response.status,
|
statusCode: response.status,
|
||||||
|
/**
|
||||||
|
* Axios adds `status` when serializing, causing `status` to be available only to the client.
|
||||||
|
* Hence we add it explicitly to allow the backend to use it when resolving expressions.
|
||||||
|
*/
|
||||||
|
status: response.status,
|
||||||
error: responseData,
|
error: responseData,
|
||||||
response: pick(response, ['headers', 'status', 'statusText']),
|
response: pick(response, ['headers', 'status', 'statusText']),
|
||||||
});
|
});
|
||||||
|
|
|
@ -243,6 +243,16 @@ describe('NodeExecuteFunctions', () => {
|
||||||
hooks.executeHookFunctions.mockClear();
|
hooks.executeHookFunctions.mockClear();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should rethrow an error with `status` property', async () => {
|
||||||
|
nock(baseUrl).get('/test').reply(400);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await proxyRequestToAxios(workflow, additionalData, node, `${baseUrl}/test`);
|
||||||
|
} catch (error) {
|
||||||
|
expect(error.status).toEqual(400);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test('should not throw if the response status is 200', async () => {
|
test('should not throw if the response status is 200', async () => {
|
||||||
nock(baseUrl).get('/test').reply(200);
|
nock(baseUrl).get('/test').reply(200);
|
||||||
await proxyRequestToAxios(workflow, additionalData, node, `${baseUrl}/test`);
|
await proxyRequestToAxios(workflow, additionalData, node, `${baseUrl}/test`);
|
||||||
|
|
Loading…
Reference in a new issue