// Tests for message-type filtering. node test/message.test.mjs import assert from "node:assert/strict"; import { MESSAGE_TYPE_CHAT, acceptsMessageType } from "../web/static/message.js"; let failures = 0; async function test(name, fn) { try { await fn(); console.log("PASS " + name); } catch (e) { console.log("FAIL " + name + " — " + (e && e.message)); failures++; } } await test("chat is the type we stamp", () => { assert.equal(MESSAGE_TYPE_CHAT, "chat"); }); await test("accepts chat", () => { assert.equal(acceptsMessageType("chat"), true); }); await test("accepts a legacy untyped payload (null/undefined)", () => { assert.equal(acceptsMessageType(null), true); assert.equal(acceptsMessageType(undefined), true); }); await test("rejects an unknown future type", () => { assert.equal(acceptsMessageType("system"), false); assert.equal(acceptsMessageType("presence"), false); assert.equal(acceptsMessageType(""), false); }); console.log(failures === 0 ? "\nALL PASSED" : `\n${failures} FAILED`); process.exit(failures === 0 ? 0 : 1);