mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
feat(editor): Improve errors in output panel (#8644)
Co-authored-by: Michael Kret <michael.k@radency.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { INode } from '@/Interfaces';
|
||||
import { NodeOperationError } from '@/errors';
|
||||
import { NodeApiError } from '@/errors/node-api.error';
|
||||
import { UNKNOWN_ERROR_DESCRIPTION, UNKNOWN_ERROR_MESSAGE } from '../src/Constants';
|
||||
|
||||
const node: INode = {
|
||||
id: '1',
|
||||
@@ -17,9 +18,7 @@ describe('NodeErrors tests', () => {
|
||||
it('should return unknown error message', () => {
|
||||
const nodeApiError = new NodeApiError(node, {});
|
||||
|
||||
expect(nodeApiError.message).toEqual(
|
||||
'UNKNOWN ERROR - check the detailed error for more information',
|
||||
);
|
||||
expect(nodeApiError.message).toEqual(UNKNOWN_ERROR_MESSAGE);
|
||||
});
|
||||
|
||||
it('should return the error message', () => {
|
||||
@@ -110,9 +109,8 @@ describe('NodeErrors tests', () => {
|
||||
|
||||
expect(nodeOperationError.message).toEqual('The server closed the connection unexpectedly');
|
||||
|
||||
expect(nodeOperationError.description).toEqual(
|
||||
'GETADDRINFO test error message - test error description',
|
||||
);
|
||||
//description should not include error message
|
||||
expect(nodeOperationError.description).toEqual('test error description');
|
||||
});
|
||||
|
||||
it('should remove description if it is equal to message, NodeOperationError', () => {
|
||||
@@ -175,3 +173,91 @@ describe('NodeErrors tests', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('NodeApiError message and description logic', () => {
|
||||
it('case: customMessage && customDescription, result: message === customMessage; description === customDescription', () => {
|
||||
const apiError = { message: 'Original message', code: 404 };
|
||||
const nodeApiError = new NodeApiError(node, apiError, {
|
||||
message: 'Custom message',
|
||||
description: 'Custom description',
|
||||
});
|
||||
|
||||
expect(nodeApiError.message).toEqual('Custom message');
|
||||
expect(nodeApiError.description).toEqual('Custom description');
|
||||
expect(nodeApiError.messages).toContain('Original message');
|
||||
});
|
||||
|
||||
it('case: customMessage && !customDescription && extractedMessage, result: message === customMessage; description === extractedMessage', () => {
|
||||
const apiError = {
|
||||
message: 'Original message',
|
||||
code: 404,
|
||||
response: { data: { error: { message: 'Extracted message' } } },
|
||||
};
|
||||
const nodeApiError = new NodeApiError(node, apiError, {
|
||||
message: 'Custom message',
|
||||
});
|
||||
|
||||
expect(nodeApiError.message).toEqual('Custom message');
|
||||
expect(nodeApiError.description).toEqual('Extracted message');
|
||||
expect(nodeApiError.messages).toContain('Original message');
|
||||
});
|
||||
|
||||
it('case: customMessage && !customDescription && !extractedMessage, result: message === customMessage; !description', () => {
|
||||
const apiError = {
|
||||
message: '',
|
||||
code: 404,
|
||||
response: { data: { error: { foo: 'Extracted message' } } },
|
||||
};
|
||||
const nodeApiError = new NodeApiError(node, apiError, {
|
||||
message: 'Custom message',
|
||||
});
|
||||
|
||||
expect(nodeApiError.message).toEqual('Custom message');
|
||||
expect(nodeApiError.description).toBeFalsy();
|
||||
expect(nodeApiError.messages.length).toBe(0);
|
||||
});
|
||||
|
||||
it('case: !customMessage && httpCodeMapping && extractedMessage, result: message === httpCodeMapping; description === extractedMessage', () => {
|
||||
const apiError = {
|
||||
message: 'Original message',
|
||||
code: 404,
|
||||
response: { data: { error: { message: 'Extracted message' } } },
|
||||
};
|
||||
const nodeApiError = new NodeApiError(node, apiError);
|
||||
|
||||
expect(nodeApiError.message).toEqual('The resource you are requesting could not be found');
|
||||
expect(nodeApiError.description).toEqual('Extracted message');
|
||||
expect(nodeApiError.messages).toContain('Original message');
|
||||
});
|
||||
|
||||
it('case: !customMessage && httpCodeMapping && !extractedMessage, result: message === httpCodeMapping; !description', () => {
|
||||
const apiError = {
|
||||
message: '',
|
||||
code: 500,
|
||||
};
|
||||
const nodeApiError = new NodeApiError(node, apiError);
|
||||
|
||||
expect(nodeApiError.message).toEqual('The service was not able to process your request');
|
||||
expect(nodeApiError.description).toBeFalsy();
|
||||
});
|
||||
|
||||
it('case: !customMessage && !httpCodeMapping && extractedMessage, result: message === extractedMessage; !description', () => {
|
||||
const apiError = {
|
||||
message: '',
|
||||
code: 300,
|
||||
response: { data: { error: { message: 'Extracted message' } } },
|
||||
};
|
||||
const nodeApiError = new NodeApiError(node, apiError);
|
||||
|
||||
expect(nodeApiError.message).toEqual('Extracted message');
|
||||
expect(nodeApiError.description).toBeFalsy();
|
||||
});
|
||||
|
||||
it('case: !customMessage && !httpCodeMapping && !extractedMessage, result: message === UNKNOWN_ERROR_MESSAGE; description === UNKNOWN_ERROR_DESCRIPTION', () => {
|
||||
const apiError = {};
|
||||
const nodeApiError = new NodeApiError(node, apiError);
|
||||
|
||||
expect(nodeApiError.message).toEqual(UNKNOWN_ERROR_MESSAGE);
|
||||
expect(nodeApiError.description).toEqual(UNKNOWN_ERROR_DESCRIPTION);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user