From b45518929a1a6ebe66556092a8d244c18921bedd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 17 Oct 2022 16:25:07 +0200 Subject: [PATCH] scaffolder-backend: fix subscription leakage in task broker tests Signed-off-by: Patrik Oldsberg --- .../tasks/StorageTaskBroker.test.ts | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts index 4fc142a991..421afb2329 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts @@ -126,12 +126,15 @@ describe('StorageTaskBroker', () => { const logPromise = new Promise(resolve => { const observedEvents = new Array(); - broker2.event$({ taskId, after: undefined }).subscribe(({ events }) => { - observedEvents.push(...events); - if (events.some(e => e.type === 'completion')) { - resolve(observedEvents); - } - }); + const subscription = broker2 + .event$({ taskId, after: undefined }) + .subscribe(({ events }) => { + observedEvents.push(...events); + if (events.some(e => e.type === 'completion')) { + resolve(observedEvents); + subscription.unsubscribe(); + } + }); }); const task = await broker1.claim(); await task.emitLog('log 1'); @@ -148,11 +151,12 @@ describe('StorageTaskBroker', () => { ]); const afterLogs = await new Promise(resolve => { - broker2 + const subscription = broker2 .event$({ taskId, after: logs[1].id }) - .subscribe(({ events }) => - resolve(events.map(e => e.body.message as string)), - ); + .subscribe(({ events }) => { + resolve(events.map(e => e.body.message as string)); + subscription.unsubscribe(); + }); }); expect(afterLogs).toEqual([ 'log 3',