fix(core): Aborting manual trigger tests should call closeFunction (#9980)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2024-07-10 12:37:35 +02:00
committed by GitHub
parent 504bb704d3
commit 6107798516
2 changed files with 78 additions and 7 deletions

View File

@@ -1424,13 +1424,6 @@ export class Workflow {
return { data: null };
}
if (triggerResponse.manualTriggerFunction !== undefined) {
// If a manual trigger function is defined call it and wait till it did run
await triggerResponse.manualTriggerFunction();
}
const response = await triggerResponse.manualTriggerResponse!;
let closeFunction;
if (triggerResponse.closeFunction) {
// In manual mode we return the trigger closeFunction. That allows it to be called directly
@@ -1439,8 +1432,18 @@ export class Workflow {
// If we would not be able to wait for it to close would it cause problems with "own" mode as the
// process would be killed directly after it and so the acknowledge would not have been finished yet.
closeFunction = triggerResponse.closeFunction;
// Manual testing of Trigger nodes creates an execution. If the execution is cancelled, `closeFunction` should be called to cleanup any open connections/consumers
abortSignal?.addEventListener('abort', closeFunction);
}
if (triggerResponse.manualTriggerFunction !== undefined) {
// If a manual trigger function is defined call it and wait till it did run
await triggerResponse.manualTriggerFunction();
}
const response = await triggerResponse.manualTriggerResponse!;
if (response.length === 0) {
return { data: null, closeFunction };
}