From 641e970eddabf30e213b956e00b21355a77cdf94 Mon Sep 17 00:00:00 2001 From: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> Date: Mon, 30 Jun 2025 13:56:11 +0200 Subject: [PATCH] fix(core): Remove default for manual trigger in manual executions (#16829) --- .../manual-execution.service.test.ts | 23 +++++++++++-------- packages/cli/src/manual-execution.service.ts | 12 ++-------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/packages/cli/src/__tests__/manual-execution.service.test.ts b/packages/cli/src/__tests__/manual-execution.service.test.ts index b401ab416c..7aeaad5c2e 100644 --- a/packages/cli/src/__tests__/manual-execution.service.test.ts +++ b/packages/cli/src/__tests__/manual-execution.service.test.ts @@ -72,26 +72,29 @@ describe('ManualExecutionService', () => { expect(executionStartNode?.name).toEqual('node3'); }); - it('should default to The manual trigger', () => { - const data = mock(); + it('should return undefined, even if manual trigger node is available', () => { + const scheduleTrigger = mock({ + type: 'n8n-nodes-base.scheduleTrigger', + name: 'Wed 12:00', + }); + const manualTrigger = mock({ type: 'n8n-nodes-base.manualTrigger', name: 'When clicking ‘Execute workflow’', }); + const data = mock({ + startNodes: [scheduleTrigger], + triggerToStartFrom: undefined, + }); + const workflow = mock({ getTriggerNodes() { - return [ - mock({ - type: 'n8n-nodes-base.scheduleTrigger', - name: 'Wed 12:00', - }), - manualTrigger, - ]; + return [scheduleTrigger, manualTrigger]; }, }); const executionStartNode = manualExecutionService.getExecutionStartNode(data, workflow); - expect(executionStartNode?.name).toBe(manualTrigger.name); + expect(executionStartNode?.name).toBeUndefined(); }); }); diff --git a/packages/cli/src/manual-execution.service.ts b/packages/cli/src/manual-execution.service.ts index 5bc3e6ac1b..6c1d899884 100644 --- a/packages/cli/src/manual-execution.service.ts +++ b/packages/cli/src/manual-execution.service.ts @@ -9,7 +9,7 @@ import { WorkflowExecute, rewireGraph, } from 'n8n-core'; -import { MANUAL_TRIGGER_NODE_TYPE, NodeHelpers } from 'n8n-workflow'; +import { NodeHelpers } from 'n8n-workflow'; import type { IExecuteData, IPinData, @@ -43,15 +43,7 @@ export class ManualExecutionService { startNode = workflow.getNode(data.startNodes[0].name) ?? undefined; } - if (startNode) { - return startNode; - } - - const manualTrigger = workflow - .getTriggerNodes() - .find((node) => node.type === MANUAL_TRIGGER_NODE_TYPE); - - return manualTrigger; + return startNode; } // eslint-disable-next-line @typescript-eslint/promise-function-async