From 0c07ace612d6efef8185d5b977df224bf492c832 Mon Sep 17 00:00:00 2001 From: Michael Kret Date: Tue, 7 Jan 2025 14:36:05 +0200 Subject: [PATCH] dateTime required parameter validation fix --- packages/workflow/src/NodeHelpers.ts | 2 +- packages/workflow/test/NodeHelpers.test.ts | 53 ++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/packages/workflow/src/NodeHelpers.ts b/packages/workflow/src/NodeHelpers.ts index 22883a73bb..bbeeca87c0 100644 --- a/packages/workflow/src/NodeHelpers.ts +++ b/packages/workflow/src/NodeHelpers.ts @@ -1404,7 +1404,7 @@ function addToIssuesIfMissing( if ( (nodeProperties.type === 'string' && (value === '' || value === undefined)) || (nodeProperties.type === 'multiOptions' && Array.isArray(value) && value.length === 0) || - (nodeProperties.type === 'dateTime' && value === undefined) || + (nodeProperties.type === 'dateTime' && (value === '' || value === undefined)) || (nodeProperties.type === 'options' && (value === '' || value === undefined)) || ((nodeProperties.type === 'resourceLocator' || nodeProperties.type === 'workflowSelector') && !isValidResourceLocatorParameterValue(value as INodeParameterResourceLocator)) diff --git a/packages/workflow/test/NodeHelpers.test.ts b/packages/workflow/test/NodeHelpers.test.ts index 8b3d9b3b02..964dedc6a9 100644 --- a/packages/workflow/test/NodeHelpers.test.ts +++ b/packages/workflow/test/NodeHelpers.test.ts @@ -4195,4 +4195,57 @@ describe('NodeHelpers', () => { }); } }); + + describe('getParameterIssues, required parameters validation', () => { + const testNode: INode = { + id: '12345', + name: 'Test Node', + typeVersion: 1, + type: 'n8n-nodes-base.testNode', + position: [1, 1], + parameters: {}, + }; + + it('Should validate required dateTime parameters if empty string', () => { + const nodeProperties: INodeProperties = { + displayName: 'Date Time', + name: 'testDateTime', + type: 'dateTime', + default: '', + required: true, + }; + const nodeValues: INodeParameters = { + testDateTime: '', + }; + + const result = getParameterIssues(nodeProperties, nodeValues, '', testNode); + + expect(result).toEqual({ + parameters: { + testDateTime: ['Parameter "Date Time" is required.'], + }, + }); + }); + + it('Should validate required dateTime parameters if empty undefined', () => { + const nodeProperties: INodeProperties = { + displayName: 'Date Time', + name: 'testDateTime', + type: 'dateTime', + default: '', + required: true, + }; + const nodeValues: INodeParameters = { + testDateTime: undefined, + }; + + const result = getParameterIssues(nodeProperties, nodeValues, '', testNode); + + expect(result).toEqual({ + parameters: { + testDateTime: ['Parameter "Date Time" is required.'], + }, + }); + }); + }); });