mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-14 03:20:49 +00:00
51 lines
1.9 KiB
TypeScript
51 lines
1.9 KiB
TypeScript
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([]);
|
|
});
|
|
});
|