UNPKG

@gguf/claw

Version:

WhatsApp gateway CLI (Baileys web) with Pi RPC agent

67 lines (58 loc) 2.18 kB
import { describe, expect, it } from "vitest"; import { normalizeMSTeamsConversationId, parseMSTeamsActivityTimestamp, stripMSTeamsMentionTags, wasMSTeamsBotMentioned, } from "./inbound.js"; describe("msteams inbound", () => { describe("stripMSTeamsMentionTags", () => { it("removes <at>...</at> tags and trims", () => { expect(stripMSTeamsMentionTags("<at>Bot</at> hi")).toBe("hi"); expect(stripMSTeamsMentionTags("hi <at>Bot</at>")).toBe("hi"); }); it("removes <at ...> tags with attributes", () => { expect(stripMSTeamsMentionTags('<at id="1">Bot</at> hi')).toBe("hi"); expect(stripMSTeamsMentionTags('hi <at itemid="2">Bot</at>')).toBe("hi"); }); }); describe("normalizeMSTeamsConversationId", () => { it("strips the ;messageid suffix", () => { expect(normalizeMSTeamsConversationId("19:abc@thread.tacv2;messageid=deadbeef")).toBe( "19:abc@thread.tacv2", ); }); }); describe("parseMSTeamsActivityTimestamp", () => { it("returns undefined for empty/invalid values", () => { expect(parseMSTeamsActivityTimestamp(undefined)).toBeUndefined(); expect(parseMSTeamsActivityTimestamp("not-a-date")).toBeUndefined(); }); it("parses string timestamps", () => { const ts = parseMSTeamsActivityTimestamp("2024-01-01T00:00:00.000Z"); expect(ts?.toISOString()).toBe("2024-01-01T00:00:00.000Z"); }); it("passes through Date instances", () => { const d = new Date("2024-01-01T00:00:00.000Z"); expect(parseMSTeamsActivityTimestamp(d)).toBe(d); }); }); describe("wasMSTeamsBotMentioned", () => { it("returns true when a mention entity matches recipient.id", () => { expect( wasMSTeamsBotMentioned({ recipient: { id: "bot" }, entities: [{ type: "mention", mentioned: { id: "bot" } }], }), ).toBe(true); }); it("returns false when there is no matching mention", () => { expect( wasMSTeamsBotMentioned({ recipient: { id: "bot" }, entities: [{ type: "mention", mentioned: { id: "other" } }], }), ).toBe(false); }); }); });