From 77852b8cce41fdb680c2602397e27f2ca3dd6125 Mon Sep 17 00:00:00 2001 From: dakkar Date: Fri, 19 Sep 2025 13:33:22 +0100 Subject: [PATCH] teach tests about the new way we fail websockets --- packages/backend/test/e2e/api.ts | 4 ++-- packages/backend/test/e2e/streaming.ts | 3 +++ packages/backend/test/utils.ts | 6 ++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/backend/test/e2e/api.ts b/packages/backend/test/e2e/api.ts index 49c6a0636b..31a784a276 100644 --- a/packages/backend/test/e2e/api.ts +++ b/packages/backend/test/e2e/api.ts @@ -237,8 +237,8 @@ describe('API', () => { 'homeTimeline', () => { }, ), (err: IncomingMessage) => { - assert.strictEqual(err.statusCode, 401); - assert.ok(err.headers['www-authenticate']?.startsWith('Bearer realm="Misskey", error="invalid_token", error_description')); + assert.strictEqual(err.statusCode, 4000); + assert.ok(err.reason?.startsWith('Failed to authenticate')); return true; }); }); diff --git a/packages/backend/test/e2e/streaming.ts b/packages/backend/test/e2e/streaming.ts index 89e88d6d6c..2ab58215c8 100644 --- a/packages/backend/test/e2e/streaming.ts +++ b/packages/backend/test/e2e/streaming.ts @@ -734,6 +734,9 @@ describe('Streaming', () => { const socket = new WebSocket(`ws://127.0.0.1:${port}/streaming?i=${application}`); const established = await new Promise((resolve, reject) => { socket.on('error', () => resolve(false)); + socket.on('close', (code, reason) => { + if (code === 4000) resolve(false); + }); socket.on('unexpected-response', () => resolve(false)); setTimeout(() => resolve(true), 3000); }); diff --git a/packages/backend/test/utils.ts b/packages/backend/test/utils.ts index 4a11f5b270..25a3e07f9f 100644 --- a/packages/backend/test/utils.ts +++ b/packages/backend/test/utils.ts @@ -377,6 +377,12 @@ export function connectStream(user: UserToken, const ws = new WebSocket(url, options); ws.on('unexpected-response', (req, res) => rej(res)); + ws.on('close', (code, reason) => { + rej({ + statusCode: code, + reason: reason.toString('utf8'), + }); + }); ws.on('open', () => { ws.on('message', data => { const msg = JSON.parse(data.toString());