From 5bca760d58c249f3fc42c2b8e24575d22f325e1f Mon Sep 17 00:00:00 2001 From: PoleTransformer Date: Tue, 18 Feb 2025 17:26:52 -0800 Subject: [PATCH] local ws for unit test + touchups --- server/monitor-types/websocket-upgrade.js | 3 ++- src/lang/en.json | 2 +- test/backend-test/test-websocket.js | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/monitor-types/websocket-upgrade.js b/server/monitor-types/websocket-upgrade.js index eb9a37143..9b12c1a7a 100644 --- a/server/monitor-types/websocket-upgrade.js +++ b/server/monitor-types/websocket-upgrade.js @@ -12,7 +12,6 @@ class WebSocketMonitorType extends MonitorType { const [ message, code ] = await this.attemptUpgrade(monitor); heartbeat.status = code === 1000 ? UP : DOWN; heartbeat.msg = message; - console.log(code, message); //temp unit testing } /** @@ -34,10 +33,12 @@ class WebSocketMonitorType extends MonitorType { if (monitor.wsIgnoreHeaders && error.message === "Invalid Sec-WebSocket-Accept header") { resolve([ "101 - OK", 1000 ]); } + // Upgrade failed, return message to user resolve([ error.message, error.code ]); }; ws.onclose = (event) => { + // Upgrade success, connection closed successfully resolve([ "101 - OK", event.code ]); }; }); diff --git a/src/lang/en.json b/src/lang/en.json index 1f1b473c5..ff2923b58 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -86,7 +86,7 @@ "ignoreTLSError": "Ignore TLS/SSL errors for HTTPS websites", "ignoreTLSErrorGeneral": "Ignore TLS/SSL error for connection", "upsideDownModeDescription": "Flip the status upside down. If the service is reachable, it is DOWN.", - "wsIgnoreHeadersDescription": "Test non compliant Websocket servers.", + "wsIgnoreHeadersDescription": "The websocket upgrade succeeds, but the server does not reply with Sec-WebSocket-Accept header.", "Ignore Sec-WebSocket-Accept header": "Ignore Sec-WebSocket-Accept header", "maxRedirectDescription": "Maximum number of redirects to follow. Set to 0 to disable redirects.", "Upside Down Mode": "Upside Down Mode", diff --git a/test/backend-test/test-websocket.js b/test/backend-test/test-websocket.js index ee62eef26..4898e3c51 100644 --- a/test/backend-test/test-websocket.js +++ b/test/backend-test/test-websocket.js @@ -1,3 +1,4 @@ +const { WebSocketServer } = require("ws"); const { describe, test } = require("node:test"); const assert = require("node:assert"); const { WebSocketMonitorType } = require("../../server/monitor-types/websocket-upgrade"); @@ -49,11 +50,13 @@ describe("Websocket Test", { assert.deepStrictEqual(heartbeat, expected); }); - test("Insecure Websocket", async () => { + test("Insecure Websocket", async (t) => { + t.after(() => wss.close()); const websocketMonitor = new WebSocketMonitorType(); + const wss = new WebSocketServer({ port: 8080 }); const monitor = { - wsurl: "ws://ws.ifelse.io", + wsurl: "ws://localhost:8080", wsIgnoreHeaders: false, };