From d325c015038c3e672bae172177471711821da759 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 21 Feb 2026 23:21:51 +0000 Subject: [PATCH] test(gateway): dedupe canvas ws connect assertions --- src/gateway/server.canvas-auth.e2e.test.ts | 47 +++++++++------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/src/gateway/server.canvas-auth.e2e.test.ts b/src/gateway/server.canvas-auth.e2e.test.ts index c542583eab1..02d99ed394b 100644 --- a/src/gateway/server.canvas-auth.e2e.test.ts +++ b/src/gateway/server.canvas-auth.e2e.test.ts @@ -59,6 +59,23 @@ async function expectWsRejected( }); } +async function expectWsConnected(url: string): Promise { + await new Promise((resolve, reject) => { + const ws = new WebSocket(url); + const timer = setTimeout(() => reject(new Error("timeout")), WS_CONNECT_TIMEOUT_MS); + ws.once("open", () => { + clearTimeout(timer); + ws.terminate(); + resolve(); + }); + ws.once("unexpected-response", (_req, res) => { + clearTimeout(timer); + reject(new Error(`unexpected response ${res.statusCode}`)); + }); + ws.once("error", reject); + }); +} + function makeWsClient(params: { connId: string; clientIp: string; @@ -243,20 +260,7 @@ describe("gateway canvas host auth", () => { ); expect(scopedA2ui.status).toBe(200); - await new Promise((resolve, reject) => { - const ws = new WebSocket(`ws://${host}:${listener.port}${activeWsPath}`); - const timer = setTimeout(() => reject(new Error("timeout")), WS_CONNECT_TIMEOUT_MS); - ws.once("open", () => { - clearTimeout(timer); - ws.terminate(); - resolve(); - }); - ws.once("unexpected-response", (_req, res) => { - clearTimeout(timer); - reject(new Error(`unexpected response ${res.statusCode}`)); - }); - ws.once("error", reject); - }); + await expectWsConnected(`ws://${host}:${listener.port}${activeWsPath}`); clients.delete(activeNodeClient); @@ -361,20 +365,7 @@ describe("gateway canvas host auth", () => { const scopedCanvas = await fetch(`http://[::1]:${listener.port}${canvasPath}`); expect(scopedCanvas.status).toBe(200); - await new Promise((resolve, reject) => { - const ws = new WebSocket(`ws://[::1]:${listener.port}${wsPath}`); - const timer = setTimeout(() => reject(new Error("timeout")), WS_CONNECT_TIMEOUT_MS); - ws.once("open", () => { - clearTimeout(timer); - ws.terminate(); - resolve(); - }); - ws.once("unexpected-response", (_req, res) => { - clearTimeout(timer); - reject(new Error(`unexpected response ${res.statusCode}`)); - }); - ws.once("error", reject); - }); + await expectWsConnected(`ws://[::1]:${listener.port}${wsPath}`); }, }); } catch (err) {