Compare commits

..

1 commit

Author SHA1 Message Date
PoleTransformer
afe99edaed
Merge 587699d7b3 into b45dc6787d 2025-02-18 01:02:23 +00:00

View file

@ -1,99 +1,76 @@
const { describe, test } = require("node:test");
const test = require("node:test");
const assert = require("node:assert");
const { websocket } = require("../../server/monitor-types/websocket");
const { UP, DOWN, PENDING } = require("../../src/util");
describe("Websocket Test", {
}, () => {
test("Non Websocket Server", {}, async () => {
const websocketMonitor = new websocket();
test("Test Websocket TLS", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://example.org",
wsIgnoreHeaders: false,
};
const monitor = {
wsurl: "wss://echo.websocket.org",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, DOWN);
assert.strictEqual(heartbeat.msg, "Unexpected server response: 200");
});
test("Secure Websocket", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://echo.websocket.org",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});
test("Insecure Websocket", {
skip: !!process.env.CI,
}, async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "ws://ws.ifelse.io",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});
test("Test a non compliant WS server without ignore", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://c.img-cdn.net/yE4s7KehTFyj/",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, DOWN);
assert.strictEqual(heartbeat.msg, "Invalid Sec-WebSocket-Accept header");
});
test("Test a non compliant WS server with ignore", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://c.img-cdn.net/yE4s7KehTFyj/",
wsIgnoreHeaders: true,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});
test("Test Websocket non TLS", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "ws://ws.ifelse.io",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});
test("Test a non compliant WS server without ignore", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://c.img-cdn.net/yE4s7KehTFyj/",
wsIgnoreHeaders: false,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, DOWN);
assert.strictEqual(heartbeat.msg, "Invalid Sec-WebSocket-Accept header");
});
test("Test a non compliant WS server with ignore", async () => {
const websocketMonitor = new websocket();
const monitor = {
wsurl: "wss://c.img-cdn.net/yE4s7KehTFyj/",
wsIgnoreHeaders: true,
};
const heartbeat = {
msg: "",
status: PENDING,
};
await websocketMonitor.check(monitor, heartbeat, {});
assert.strictEqual(heartbeat.status, UP);
assert.strictEqual(heartbeat.msg, "101 - OK");
});