Spaces:
Running
Running
| import { describe, expect, it } from "vitest"; | |
| import { | |
| buildOutboundDeliveryJson, | |
| formatGatewaySummary, | |
| formatOutboundDeliverySummary, | |
| } from "./format.js"; | |
| describe("formatOutboundDeliverySummary", () => { | |
| it("falls back when result is missing", () => { | |
| expect(formatOutboundDeliverySummary("telegram")).toBe( | |
| "β Sent via Telegram. Message ID: unknown", | |
| ); | |
| expect(formatOutboundDeliverySummary("imessage")).toBe( | |
| "β Sent via iMessage. Message ID: unknown", | |
| ); | |
| }); | |
| it("adds chat or channel details", () => { | |
| expect( | |
| formatOutboundDeliverySummary("telegram", { | |
| channel: "telegram", | |
| messageId: "m1", | |
| chatId: "c1", | |
| }), | |
| ).toBe("β Sent via Telegram. Message ID: m1 (chat c1)"); | |
| expect( | |
| formatOutboundDeliverySummary("discord", { | |
| channel: "discord", | |
| messageId: "d1", | |
| channelId: "chan", | |
| }), | |
| ).toBe("β Sent via Discord. Message ID: d1 (channel chan)"); | |
| }); | |
| }); | |
| describe("buildOutboundDeliveryJson", () => { | |
| it("builds direct delivery payloads", () => { | |
| expect( | |
| buildOutboundDeliveryJson({ | |
| channel: "telegram", | |
| to: "123", | |
| result: { channel: "telegram", messageId: "m1", chatId: "c1" }, | |
| mediaUrl: "https://example.com/a.png", | |
| }), | |
| ).toEqual({ | |
| channel: "telegram", | |
| via: "direct", | |
| to: "123", | |
| messageId: "m1", | |
| mediaUrl: "https://example.com/a.png", | |
| chatId: "c1", | |
| }); | |
| }); | |
| it("supports whatsapp metadata when present", () => { | |
| expect( | |
| buildOutboundDeliveryJson({ | |
| channel: "whatsapp", | |
| to: "+1", | |
| result: { channel: "whatsapp", messageId: "w1", toJid: "jid" }, | |
| }), | |
| ).toEqual({ | |
| channel: "whatsapp", | |
| via: "direct", | |
| to: "+1", | |
| messageId: "w1", | |
| mediaUrl: null, | |
| toJid: "jid", | |
| }); | |
| }); | |
| it("keeps timestamp for signal", () => { | |
| expect( | |
| buildOutboundDeliveryJson({ | |
| channel: "signal", | |
| to: "+1", | |
| result: { channel: "signal", messageId: "s1", timestamp: 123 }, | |
| }), | |
| ).toEqual({ | |
| channel: "signal", | |
| via: "direct", | |
| to: "+1", | |
| messageId: "s1", | |
| mediaUrl: null, | |
| timestamp: 123, | |
| }); | |
| }); | |
| }); | |
| describe("formatGatewaySummary", () => { | |
| it("formats gateway summaries with channel", () => { | |
| expect(formatGatewaySummary({ channel: "whatsapp", messageId: "m1" })).toBe( | |
| "β Sent via gateway (whatsapp). Message ID: m1", | |
| ); | |
| }); | |
| it("supports custom actions", () => { | |
| expect( | |
| formatGatewaySummary({ | |
| action: "Poll sent", | |
| channel: "discord", | |
| messageId: "p1", | |
| }), | |
| ).toBe("β Poll sent via gateway (discord). Message ID: p1"); | |
| }); | |
| }); | |