refactor(core): Simplify createDeferredPromise, and add tests (no-changelog) (#10811)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2024-09-13 15:53:03 +02:00
committed by GitHub
parent d647ef41ac
commit cef64329a9
14 changed files with 66 additions and 43 deletions

View File

@@ -85,12 +85,12 @@ describe('ActiveExecutions', () => {
test('Should attach and resolve response promise to existing execution', async () => {
const newExecution = mockExecutionData();
await activeExecutions.add(newExecution, FAKE_EXECUTION_ID);
const deferredPromise = await mockDeferredPromise();
const deferredPromise = mockDeferredPromise();
activeExecutions.attachResponsePromise(FAKE_EXECUTION_ID, deferredPromise);
const fakeResponse = { data: { resultData: { runData: {} } } };
activeExecutions.resolveResponsePromise(FAKE_EXECUTION_ID, fakeResponse);
await expect(deferredPromise.promise()).resolves.toEqual(fakeResponse);
await expect(deferredPromise.promise).resolves.toEqual(fakeResponse);
});
test('Should remove an existing execution', async () => {
@@ -163,5 +163,5 @@ function mockFullRunData(): IRun {
// eslint-disable-next-line @typescript-eslint/promise-function-async
const mockCancelablePromise = () => new PCancelable<IRun>((resolve) => resolve());
// eslint-disable-next-line @typescript-eslint/promise-function-async
const mockDeferredPromise = () => createDeferredPromise<IExecuteResponsePromiseData>();

View File

@@ -184,9 +184,9 @@ export class ActiveExecutions {
*/
async getPostExecutePromise(executionId: string): Promise<IRun | undefined> {
// Create the promise which will be resolved when the execution finished
const waitPromise = await createDeferredPromise<IRun | undefined>();
const waitPromise = createDeferredPromise<IRun | undefined>();
this.getExecution(executionId).postExecutePromises.push(waitPromise);
return await waitPromise.promise();
return await waitPromise.promise;
}
/**

View File

@@ -437,9 +437,8 @@ export async function executeWebhook(
let responsePromise: IDeferredPromise<IN8nHttpFullResponse> | undefined;
if (responseMode === 'responseNode') {
responsePromise = await createDeferredPromise<IN8nHttpFullResponse>();
responsePromise
.promise()
responsePromise = createDeferredPromise<IN8nHttpFullResponse>();
responsePromise.promise
.then(async (response: IN8nHttpFullResponse) => {
if (didSendResponse) {
return;
@@ -550,7 +549,7 @@ export async function executeWebhook(
// in `responseNode` mode `responseCallback` is called by `responsePromise`
if (responseMode === 'responseNode' && responsePromise) {
await Promise.allSettled([responsePromise.promise()]);
await Promise.allSettled([responsePromise.promise]);
return undefined;
}