diff --git a/packages/cli/templates/form-trigger-completion.handlebars b/packages/cli/templates/form-trigger-completion.handlebars index 49520fd14c..a15855d371 100644 --- a/packages/cli/templates/form-trigger-completion.handlebars +++ b/packages/cli/templates/form-trigger-completion.handlebars @@ -69,6 +69,9 @@ {{/if}} + diff --git a/packages/core/src/node-execution-context/__tests__/node-execution-context.test.ts b/packages/core/src/node-execution-context/__tests__/node-execution-context.test.ts index 95ed62337e..0231873984 100644 --- a/packages/core/src/node-execution-context/__tests__/node-execution-context.test.ts +++ b/packages/core/src/node-execution-context/__tests__/node-execution-context.test.ts @@ -79,7 +79,7 @@ describe('NodeExecutionContext', () => { const result = testContext.getChildNodes('Test Node'); - expect(result).toEqual([ + expect(result).toMatchObject([ { name: 'Child Node 1', type: 'testType1', typeVersion: 1 }, { name: 'Child Node 2', type: 'testType2', typeVersion: 2 }, ]); @@ -98,7 +98,7 @@ describe('NodeExecutionContext', () => { const result = testContext.getParentNodes('Test Node'); - expect(result).toEqual([ + expect(result).toMatchObject([ { name: 'Parent Node 1', type: 'testType1', typeVersion: 1 }, { name: 'Parent Node 2', type: 'testType2', typeVersion: 2 }, ]); diff --git a/packages/core/src/node-execution-context/node-execution-context.ts b/packages/core/src/node-execution-context/node-execution-context.ts index c4bb0739fb..158b06d02e 100644 --- a/packages/core/src/node-execution-context/node-execution-context.ts +++ b/packages/core/src/node-execution-context/node-execution-context.ts @@ -86,6 +86,7 @@ export abstract class NodeExecutionContext implements Omit node.type === FORM_NODE_TYPE || node.type === WAIT_NODE_TYPE, + (node) => !node.disabled && (node.type === FORM_NODE_TYPE || node.type === WAIT_NODE_TYPE), ); if (hasNextPage) { @@ -426,6 +432,9 @@ export class Form extends Node { }; staticData[id] = config; + + const waitTill = new Date(WAIT_INDEFINITELY); + await context.putExecutionToWait(waitTill); } return [context.getInputData()]; diff --git a/packages/nodes-base/nodes/Form/test/Form.node.test.ts b/packages/nodes-base/nodes/Form/test/Form.node.test.ts index ecd24d8ca5..8b1a24abcc 100644 --- a/packages/nodes-base/nodes/Form/test/Form.node.test.ts +++ b/packages/nodes-base/nodes/Form/test/Form.node.test.ts @@ -94,7 +94,12 @@ describe('Form Node', () => { ); mockWebhookFunctions.getRequestObject.mockReturnValue({ method: 'GET' } as Request); mockWebhookFunctions.getParentNodes.mockReturnValue([ - { type: 'n8n-nodes-base.formTrigger', name: 'Form Trigger', typeVersion: 2.1 }, + { + type: 'n8n-nodes-base.formTrigger', + name: 'Form Trigger', + typeVersion: 2.1, + disabled: false, + }, ]); mockWebhookFunctions.evaluateExpression.mockReturnValue('test'); mockWebhookFunctions.getNode.mockReturnValue(mock()); @@ -122,7 +127,12 @@ describe('Form Node', () => { it('should return form data for POST request', async () => { mockWebhookFunctions.getRequestObject.mockReturnValue({ method: 'POST' } as Request); mockWebhookFunctions.getParentNodes.mockReturnValue([ - { type: 'n8n-nodes-base.formTrigger', name: 'Form Trigger', typeVersion: 2.1 }, + { + type: 'n8n-nodes-base.formTrigger', + name: 'Form Trigger', + typeVersion: 2.1, + disabled: false, + }, ]); mockWebhookFunctions.evaluateExpression.mockReturnValue('test'); mockWebhookFunctions.getNode.mockReturnValue(mock()); @@ -174,7 +184,12 @@ describe('Form Node', () => { return {}; }); mockWebhookFunctions.getParentNodes.mockReturnValue([ - { type: 'n8n-nodes-base.formTrigger', name: 'Form Trigger', typeVersion: 2.1 }, + { + type: 'n8n-nodes-base.formTrigger', + name: 'Form Trigger', + typeVersion: 2.1, + disabled: false, + }, ]); mockWebhookFunctions.evaluateExpression.mockReturnValue('test'); diff --git a/packages/nodes-base/nodes/Form/test/FormTriggerV2.node.test.ts b/packages/nodes-base/nodes/Form/test/FormTriggerV2.node.test.ts index d3c96783c5..63dbfd4986 100644 --- a/packages/nodes-base/nodes/Form/test/FormTriggerV2.node.test.ts +++ b/packages/nodes-base/nodes/Form/test/FormTriggerV2.node.test.ts @@ -201,6 +201,7 @@ describe('FormTrigger', () => { name: 'Test Respond To Webhook', type: 'n8n-nodes-base.respondToWebhook', typeVersion: 1, + disabled: false, }, ], }), diff --git a/packages/workflow/src/Interfaces.ts b/packages/workflow/src/Interfaces.ts index f88db21ae7..77325caf03 100644 --- a/packages/workflow/src/Interfaces.ts +++ b/packages/workflow/src/Interfaces.ts @@ -903,6 +903,7 @@ export type NodeTypeAndVersion = { name: string; type: string; typeVersion: number; + disabled: boolean; }; export interface FunctionsBase {