local ws for unit test + touchups

This commit is contained in:
PoleTransformer 2025-02-18 17:26:52 -08:00
parent 492d9f503f
commit 5bca760d58
3 changed files with 8 additions and 4 deletions

View file

@ -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 ]);
};
});

View file

@ -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",

View file

@ -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,
};