UNPKG

@gguf/claw

Version:

Multi-channel AI gateway with extensible messaging integrations

47 lines (42 loc) 1.28 kB
import { describe, expect, it } from "vitest"; import { buildIrcAllowlistCandidates, normalizeIrcAllowEntry, normalizeIrcMessagingTarget, resolveIrcAllowlistMatch, } from "./normalize.js"; describe("irc normalize", () => { it("normalizes targets", () => { expect(normalizeIrcMessagingTarget("irc:channel:openclaw")).toBe("#openclaw"); expect(normalizeIrcMessagingTarget("user:alice")).toBe("alice"); expect(normalizeIrcMessagingTarget("\n")).toBeUndefined(); }); it("normalizes allowlist entries", () => { expect(normalizeIrcAllowEntry("IRC:User:Alice!u@h")).toBe("alice!u@h"); }); it("matches senders by nick/user/host candidates", () => { const message = { messageId: "m1", target: "#chan", senderNick: "Alice", senderUser: "ident", senderHost: "example.org", text: "hi", timestamp: Date.now(), isGroup: true, }; expect(buildIrcAllowlistCandidates(message)).toContain("alice!ident@example.org"); expect( resolveIrcAllowlistMatch({ allowFrom: ["alice!ident@example.org"], message, }).allowed, ).toBe(true); expect( resolveIrcAllowlistMatch({ allowFrom: ["bob"], message, }).allowed, ).toBe(false); }); });