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(); }