eleven / ocho Public

Clone
git clone https://amadan.net/eleven/ocho

Plain git — no account needed to clone.

Download

Download this file

1// Tests for message-type filtering. node test/message.test.mjs
2import assert from "node:assert/strict";
3import { MESSAGE_TYPE_CHAT, acceptsMessageType } from "../web/static/message.js";
4
5let failures = 0;
6async function test(name, fn) {
7 try {
8 await fn();
9 console.log("PASS " + name);
10 } catch (e) {
11 console.log("FAIL " + name + " — " + (e && e.message));
12 failures++;
13 }
14}
15
16await test("chat is the type we stamp", () => {
17 assert.equal(MESSAGE_TYPE_CHAT, "chat");
18});
19
20await test("accepts chat", () => {
21 assert.equal(acceptsMessageType("chat"), true);
22});
23
24await test("accepts a legacy untyped payload (null/undefined)", () => {
25 assert.equal(acceptsMessageType(null), true);
26 assert.equal(acceptsMessageType(undefined), true);
27});
28
29await test("rejects an unknown future type", () => {
30 assert.equal(acceptsMessageType("system"), false);
31 assert.equal(acceptsMessageType("presence"), false);
32 assert.equal(acceptsMessageType(""), false);
33});
34
35console.log(failures === 0 ? "\nALL PASSED" : `\n${failures} FAILED`);
36process.exit(failures === 0 ? 0 : 1);
37