|
| 1 | +import { EventEmitter } from 'events'; |
1 | 2 | import type { IActionHttp, IActorHttpOutput } from '@comunica/bus-http'; |
2 | 3 | import type { Actor, IActorTest, Mediator } from '@comunica/core'; |
3 | 4 | import { Bus } from '@comunica/core'; |
@@ -179,7 +180,10 @@ IActorHttpOutput |
179 | 180 |
|
180 | 181 | describe('ActorSourceWatchSolidNotificationWebsockets run', () => { |
181 | 182 | let websocket: Server<typeof import('ws')>; |
182 | | - const onCloseFn = jest.fn(); |
| 183 | + const closeEvents = new EventEmitter(); |
| 184 | + const onCloseFn = jest.fn(() => { |
| 185 | + closeEvents.emit('close'); |
| 186 | + }); |
183 | 187 | const onConnectionFn = jest.fn((ws: WebSocket) => { |
184 | 188 | ws.send(JSON.stringify(message)); |
185 | 189 | ws.onclose = onCloseFn; |
@@ -217,9 +221,12 @@ IActorHttpOutput |
217 | 221 | result.start(); |
218 | 222 | result.start(); |
219 | 223 | result.start(); |
220 | | - await expect(new Promise<void>(resolve => result.events.once('update', () => { |
221 | | - resolve(); |
222 | | - }))).resolves.toBeUndefined(); |
| 224 | + await expect(Promise.all([ |
| 225 | + new Promise<void>(resolve => result.events.once('update', () => { |
| 226 | + resolve(); |
| 227 | + })), |
| 228 | + new Promise<void>(resolve => closeEvents.once('close', resolve)), |
| 229 | + ])).resolves.toEqual([ undefined, undefined ]); |
223 | 230 | expect(onConnectionFn).toHaveBeenCalledTimes(2); |
224 | 231 | expect(onCloseFn).toHaveBeenCalledTimes(1); |
225 | 232 |
|
|
0 commit comments