| import { describe, expect, it } from "vitest"; |
| import { createChannelTestPluginBase, createOutboundTestPlugin } from "./channel-plugins.js"; |
|
|
| describe("createChannelTestPluginBase", () => { |
| it("builds a plugin base with defaults", () => { |
| const cfg = {} as never; |
| const base = createChannelTestPluginBase({ id: "telegram", label: "Telegram" }); |
| expect(base.id).toBe("telegram"); |
| expect(base.meta.label).toBe("Telegram"); |
| expect(base.meta.selectionLabel).toBe("Telegram"); |
| expect(base.meta.docsPath).toBe("/channels/telegram"); |
| expect(base.capabilities.chatTypes).toEqual(["direct"]); |
| expect(base.config.listAccountIds(cfg)).toEqual(["default"]); |
| expect(base.config.resolveAccount(cfg)).toEqual({}); |
| }); |
|
|
| it("honors config and metadata overrides", async () => { |
| const cfg = {} as never; |
| const base = createChannelTestPluginBase({ |
| id: "discord", |
| label: "Discord Bot", |
| docsPath: "/custom/discord", |
| capabilities: { chatTypes: ["group"] }, |
| config: { |
| listAccountIds: () => ["acct-1"], |
| isConfigured: async () => true, |
| }, |
| }); |
| expect(base.meta.docsPath).toBe("/custom/discord"); |
| expect(base.capabilities.chatTypes).toEqual(["group"]); |
| expect(base.config.listAccountIds(cfg)).toEqual(["acct-1"]); |
| const account = base.config.resolveAccount(cfg); |
| await expect(base.config.isConfigured?.(account, cfg)).resolves.toBe(true); |
| }); |
| }); |
|
|
| describe("createOutboundTestPlugin", () => { |
| it("keeps outbound test plugin account list behavior", () => { |
| const cfg = {} as never; |
| const plugin = createOutboundTestPlugin({ |
| id: "signal", |
| outbound: { |
| deliveryMode: "direct", |
| resolveTarget: () => ({ ok: true, to: "target" }), |
| sendText: async () => ({ channel: "signal", messageId: "m1" }), |
| }, |
| }); |
| expect(plugin.config.listAccountIds(cfg)).toEqual([]); |
| }); |
| }); |
|
|