From 4adf6e14cff91831ae36e87e69e86dd112b2325b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 13 Sep 2024 17:25:25 +0200 Subject: [PATCH] events-backend: fix for time out test in later versions of Node.js v20 Signed-off-by: Patrik Oldsberg --- .../src/service/EventsPlugin.test.ts | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/plugins/events-backend/src/service/EventsPlugin.test.ts b/plugins/events-backend/src/service/EventsPlugin.test.ts index 700eb37bb7..37b4cfd961 100644 --- a/plugins/events-backend/src/service/EventsPlugin.test.ts +++ b/plugins/events-backend/src/service/EventsPlugin.test.ts @@ -398,22 +398,21 @@ describe('eventsPlugin', () => { expect(res.status).toBe(202); - const { closed } = res.body!.getReader(); - const checkNotClosed = () => + const reader = res.body!.getReader(); + const isClosed = () => Promise.race([ - closed.then(() => { - throw new Error('Closed'); - }), - new Promise(r => process.nextTick(r)), + reader + .read() + .then(() => reader.closed) + .then(() => true), + new Promise(r => setTimeout(r, 100, false)), ]); - await checkNotClosed(); - + await expect(isClosed()).resolves.toBe(false); await jest.advanceTimersByTimeAsync(30000); - await checkNotClosed(); - + await expect(isClosed()).resolves.toBe(false); await jest.advanceTimersByTimeAsync(30000); - await closed; + await expect(isClosed()).resolves.toBe(true); } finally { jest.useRealTimers(); }