fix: Disable errors obfuscation (no-changelog) (#10617)

This commit is contained in:
Michael Kret
2024-08-30 10:59:30 +03:00
committed by GitHub
parent 1e08f444c9
commit 9fa1a9aa99
320 changed files with 445 additions and 518 deletions

View File

@@ -109,5 +109,3 @@ export const SINGLE_EXECUTION_NODES: { [key: string]: { [key: string]: NodeParam
operation: [undefined], // default info
},
};
export const OBFUSCATED_ERROR_MESSAGE = 'Internal error';

View File

@@ -890,7 +890,7 @@ type FunctionsBaseWithRequiredKeys<Keys extends keyof FunctionsBase> = Functions
export type ContextType = 'flow' | 'node';
type BaseExecutionFunctions = FunctionsBaseWithRequiredKeys<'getMode'> & {
continueOnFail(error?: Error): boolean;
continueOnFail(): boolean;
evaluateExpression(expression: string, itemIndex: number): NodeParameterValueType;
getContext(type: ContextType): IContextObject;
getExecuteData(): IExecuteData;

View File

@@ -9,8 +9,6 @@ import { ApplicationError } from './application.error';
export class NodeOperationError extends NodeError {
type: string | undefined;
obfuscate: boolean = false;
constructor(
node: INode,
error: Error | string | JsonObject,
@@ -20,13 +18,8 @@ export class NodeOperationError extends NodeError {
return error;
}
let obfuscateErrorMessage = false;
if (typeof error === 'string') {
error = new ApplicationError(error);
} else if (!(error instanceof ApplicationError)) {
// this error was no processed by n8n, obfuscate error message
obfuscateErrorMessage = true;
}
super(node, error);
@@ -35,11 +28,6 @@ export class NodeOperationError extends NodeError {
error.messages.forEach((message) => this.addToMessages(message));
}
if (obfuscateErrorMessage && !options.description) {
const originalMessage = typeof error === 'string' ? error : (error.message as string);
this.addToMessages(originalMessage);
this.obfuscate = true;
}
if (options.message) this.message = options.message;
if (options.level) this.level = options.level;
if (options.functionality) this.functionality = options.functionality;

View File

@@ -2,7 +2,6 @@ import { mock } from 'jest-mock-extended';
import type { INode } from '@/Interfaces';
import { NodeApiError } from '@/errors/node-api.error';
import { NodeOperationError } from '@/errors/node-operation.error';
import { ApplicationError } from '@/errors/application.error';
describe('NodeError', () => {
const node = mock<INode>();
@@ -16,50 +15,4 @@ describe('NodeError', () => {
expect(wrapped1).toEqual(apiError);
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.obfuscate).toBe(true);
expect(nodeOpError.message).toBe('Original 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.obfuscate).toBe(false);
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.obfuscate).toBe(false);
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.obfuscate).toBe(false);
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.obfuscate).toBe(false);
expect(nodeOpError.message).toBe('Overridden message');
expect(nodeOpError.description).toBe('Error description');
});
});