From 852a721c04ec8ff8ae0c07e861fae92e4e34768d Mon Sep 17 00:00:00 2001 From: Schluffe Date: Wed, 16 Sep 2026 00:47:10 +0200 Subject: [PATCH] use flush to fix tests --- server/client.test.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/server/client.test.ts b/server/client.test.ts index 599791a..d8b3908 100644 --- a/server/client.test.ts +++ b/server/client.test.ts @@ -6,15 +6,16 @@ const hostname = "0.0.0.0"; const port = 8042; const href = `ws://${hostname}:${port}`; -async function connect(url: string): Promise<[WebSocket, string[]]> { - return new Promise((resolve) => { +function connect(url: string): Promise<[WebSocket, string[]]> { + return new Promise((resolve, reject) => { const messages: string[] = []; const socket = new WebSocket(url); + socket.onopen = () => resolve([socket, messages]); + socket.onerror = (error) => reject(error); socket.onmessage = ({ data }) => { messages.push(data); }; - socket.onopen = () => resolve([socket, messages]); }); } @@ -41,12 +42,18 @@ function setup( }; } +function flush(): Promise { + return new Promise((resolve) => setTimeout(resolve, 0)); +} + Deno.test( "broadcasts a message on connect to all clients", setup(async () => { const [s1, m1] = await connect(href); const [s2, m2] = await connect(href); + await flush(); + assertEquals(m1, ["1 has joined!", "2 has joined!"]); assertEquals(m2, ["2 has joined!"]); @@ -62,6 +69,8 @@ Deno.test( const [s2, m2] = await connect(href); const [s3, m3] = await connect(href); + await flush(); + m1.length = 0; m2.length = 0; m3.length = 0;