feat: Option to skip validation in getNodeParameter (#14726)

This commit is contained in:
Michael Kret
2025-04-18 10:05:25 +03:00
committed by GitHub
parent e1632348f2
commit b615e51f13
5 changed files with 74 additions and 3 deletions

View File

@@ -18,6 +18,7 @@ import { ApplicationError, ExpressionError, NodeConnectionTypes } from 'n8n-work
import { describeCommonTests } from './shared-tests';
import { ExecuteContext } from '../execute-context';
import * as validateUtil from '../utils/validate-value-against-schema';
describe('ExecuteContext', () => {
const testCredentialType = 'testCredential';
@@ -177,6 +178,18 @@ describe('ExecuteContext', () => {
const parameter = executeContext.getNodeParameter('testParameter', 0);
expect(parameter).toEqual([{ name: undefined, value: undefined }]);
});
it('should not validate parameter if skipValidation in options', () => {
const validateSpy = jest.spyOn(validateUtil, 'validateValueAgainstSchema');
executeContext.getNodeParameter('testParameter', 0, '', {
skipValidation: true,
});
expect(validateSpy).not.toHaveBeenCalled();
validateSpy.mockRestore();
});
});
describe('getCredentials', () => {

View File

@@ -406,6 +406,8 @@ export abstract class NodeExecutionContext implements Omit<FunctionsBase, 'getCr
});
}
if (options?.skipValidation) return returnData;
// Validate parameter value if it has a schema defined(RMC) or validateType defined
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
returnData = validateValueAgainstSchema(