Download extensions/irc/src/normalize.test.ts from Darochin/openskynet: direct link, hf CLI and curl.
- Browser
- Download file 1.61 kB
-
https://huggingface.co/Darochin/openskynet/resolve/main/extensions/irc/src/normalize.test.ts
- Command line
-
hf download hf://Darochin/openskynet/extensions/irc/src/normalize.test.ts
-
curl -L -o normalize.test.ts https://huggingface.co/Darochin/openskynet/resolve/main/extensions/irc/src/normalize.test.ts
1.61 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(buildIrcAllowlistCandidates(message)).not.toContain("alice"); | |
| expect(buildIrcAllowlistCandidates(message, { allowNameMatching: true })).toContain("alice"); | |
| expect( | |
| resolveIrcAllowlistMatch({ | |
| allowFrom: ["alice!ident@example.org"], | |
| message, | |
| }).allowed, | |
| ).toBe(true); | |
| expect( | |
| resolveIrcAllowlistMatch({ | |
| allowFrom: ["alice"], | |
| message, | |
| }).allowed, | |
| ).toBe(false); | |
| expect( | |
| resolveIrcAllowlistMatch({ | |
| allowFrom: ["alice"], | |
| message, | |
| allowNameMatching: true, | |
| }).allowed, | |
| ).toBe(true); | |
| }); | |
| }); | |