From 313cfec74da58dc2403d828a2a211c6c4004f7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Thu, 10 Apr 2025 11:13:53 +0200 Subject: [PATCH] fix(core): Restore run data value when offloading to workers (#14516) --- .../workflow-execution.service.test.ts | 40 +++++++++++++++++++ .../workflows/workflow-execution.service.ts | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts b/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts index 64b5f12a061..eeb5ce1a1c6 100644 --- a/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts +++ b/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts @@ -411,5 +411,45 @@ describe('WorkflowExecutionService', () => { expect(node).toEqual(webhookNode); }); + + describe('offloading manual executions to workers', () => { + test('when receiving no `runData`, should set `runData` to undefined in `executionData`', async () => { + const originalEnv = process.env; + process.env.OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS = 'true'; + + const configMock = { getEnv: jest.fn() }; + configMock.getEnv.mockReturnValue('queue'); + + const workflowRunnerMock = mock(); + workflowRunnerMock.run.mockResolvedValue('fake-execution-id'); + + const service = new WorkflowExecutionService( + mock(), + mock(), + mock(), + mock(), + nodeTypes, + mock(), + workflowRunnerMock, + mock(), + mock(), + mock(), + ); + + await service.executeManually( + { + workflowData: mock({ nodes: [] }), + startNodes: [], + runData: undefined, + }, + mock({ id: 'user-id' }), + ); + + const callArgs = workflowRunnerMock.run.mock.calls[0][0]; + expect(callArgs.executionData?.resultData?.runData).toBeUndefined(); + + process.env = originalEnv; + }); + }); }); }); diff --git a/packages/cli/src/workflows/workflow-execution.service.ts b/packages/cli/src/workflows/workflow-execution.service.ts index 62cc6fb361e..8f6d78049fd 100644 --- a/packages/cli/src/workflows/workflow-execution.service.ts +++ b/packages/cli/src/workflows/workflow-execution.service.ts @@ -208,7 +208,8 @@ export class WorkflowExecutionService { }, resultData: { pinData, - runData: runData ?? {}, + // @ts-expect-error CAT-752 + runData, }, manualData: { userId: data.userId,