mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
fix: Add original error message to messages, do not obfuscate if description provided in options (no-changelog) (#10202)
This commit is contained in:
parent
e6fd996973
commit
512eb11210
|
@ -34,7 +34,11 @@ export class NodeOperationError extends NodeError {
|
||||||
error.messages.forEach((message) => this.addToMessages(message));
|
error.messages.forEach((message) => this.addToMessages(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obfuscateErrorMessage) this.message = OBFUSCATED_ERROR_MESSAGE;
|
if (obfuscateErrorMessage && !options.description) {
|
||||||
|
const originalMessage = typeof error === 'string' ? error : (error.message as string);
|
||||||
|
this.addToMessages(originalMessage);
|
||||||
|
this.message = OBFUSCATED_ERROR_MESSAGE;
|
||||||
|
}
|
||||||
if (options.message) this.message = options.message;
|
if (options.message) this.message = options.message;
|
||||||
if (options.level) this.level = options.level;
|
if (options.level) this.level = options.level;
|
||||||
if (options.functionality) this.functionality = options.functionality;
|
if (options.functionality) this.functionality = options.functionality;
|
||||||
|
|
|
@ -2,6 +2,8 @@ import { mock } from 'jest-mock-extended';
|
||||||
import type { INode } from '@/Interfaces';
|
import type { INode } from '@/Interfaces';
|
||||||
import { NodeApiError } from '@/errors/node-api.error';
|
import { NodeApiError } from '@/errors/node-api.error';
|
||||||
import { NodeOperationError } from '@/errors/node-operation.error';
|
import { NodeOperationError } from '@/errors/node-operation.error';
|
||||||
|
import { ApplicationError } from '@/errors/application.error';
|
||||||
|
import { OBFUSCATED_ERROR_MESSAGE } from '@/Constants';
|
||||||
|
|
||||||
describe('NodeError', () => {
|
describe('NodeError', () => {
|
||||||
const node = mock<INode>();
|
const node = mock<INode>();
|
||||||
|
@ -15,4 +17,45 @@ describe('NodeError', () => {
|
||||||
expect(wrapped1).toEqual(apiError);
|
expect(wrapped1).toEqual(apiError);
|
||||||
expect(wrapped2).toEqual(opsError);
|
expect(wrapped2).toEqual(opsError);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should obfuscate errors not processed by n8n', () => {
|
||||||
|
const error = new Error('Original error message');
|
||||||
|
const nodeOpError = new NodeOperationError(node, error);
|
||||||
|
|
||||||
|
expect(nodeOpError.message).toBe(OBFUSCATED_ERROR_MESSAGE);
|
||||||
|
expect(nodeOpError.messages).toContain('Original error message');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not obfuscate errors processed by n8n', () => {
|
||||||
|
const appError = new ApplicationError('Processed error message');
|
||||||
|
const nodeOpError = new NodeOperationError(node, appError);
|
||||||
|
|
||||||
|
expect(nodeOpError.message).toBe('Processed error message');
|
||||||
|
expect(nodeOpError.messages).not.toContain('Processed error message');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not obfuscate string errors', () => {
|
||||||
|
const errorMessage = 'String error message';
|
||||||
|
const nodeOpError = new NodeOperationError(node, errorMessage);
|
||||||
|
|
||||||
|
expect(nodeOpError.message).toBe(errorMessage);
|
||||||
|
expect(nodeOpError.messages).toHaveLength(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not obfuscate error if description provided', () => {
|
||||||
|
const error = new Error('Initial error message');
|
||||||
|
const options = { description: 'Error description' };
|
||||||
|
const nodeOpError = new NodeOperationError(node, error, options);
|
||||||
|
|
||||||
|
expect(nodeOpError.message).toBe('Initial error message');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should respect provided options for message and description', () => {
|
||||||
|
const error = new Error('Initial error message');
|
||||||
|
const options = { message: 'Overridden message', description: 'Error description' };
|
||||||
|
const nodeOpError = new NodeOperationError(node, error, options);
|
||||||
|
|
||||||
|
expect(nodeOpError.message).toBe('Overridden message');
|
||||||
|
expect(nodeOpError.description).toBe('Error description');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue