Skip to content

Commit 7670ccf

Browse files
committed
chore: fix test too wait for ws connection to close
1 parent 32d4092 commit 7670ccf

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

packages/actor-source-watch-solid-notification-websockets/test/ActorSourceWatchSolidNotificationWebsockets-test.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { EventEmitter } from 'events';
12
import type { IActionHttp, IActorHttpOutput } from '@comunica/bus-http';
23
import type { Actor, IActorTest, Mediator } from '@comunica/core';
34
import { Bus } from '@comunica/core';
@@ -179,7 +180,10 @@ IActorHttpOutput
179180

180181
describe('ActorSourceWatchSolidNotificationWebsockets run', () => {
181182
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+
});
183187
const onConnectionFn = jest.fn((ws: WebSocket) => {
184188
ws.send(JSON.stringify(message));
185189
ws.onclose = onCloseFn;
@@ -217,9 +221,12 @@ IActorHttpOutput
217221
result.start();
218222
result.start();
219223
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 ]);
223230
expect(onConnectionFn).toHaveBeenCalledTimes(2);
224231
expect(onCloseFn).toHaveBeenCalledTimes(1);
225232

0 commit comments

Comments
 (0)