mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-03-14 05:14:46 +00:00
Compare commits
1 commit
7beb0e7857
...
afe99edaed
Author | SHA1 | Date | |
---|---|---|---|
|
afe99edaed |
1 changed files with 68 additions and 91 deletions
|
@ -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");
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue