Files
clawdbot/src/channels/plugins/index.test.ts
2026-01-18 08:54:00 +00:00

47 lines
1.3 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it } from "vitest";
import type { ChannelPlugin } from "./types.js";
import { setActivePluginRegistry } from "../../plugins/runtime.js";
import { createTestRegistry } from "../../test-utils/channel-plugins.js";
import { listChannelPlugins } from "./index.js";
describe("channel plugin registry", () => {
const emptyRegistry = createTestRegistry([]);
const createPlugin = (id: string): ChannelPlugin => ({
id,
meta: {
id,
label: id,
selectionLabel: id,
docsPath: `/channels/${id}`,
blurb: "test",
},
capabilities: { chatTypes: ["direct"] },
config: {
listAccountIds: () => [],
resolveAccount: () => ({}),
},
});
beforeEach(() => {
setActivePluginRegistry(emptyRegistry);
});
afterEach(() => {
setActivePluginRegistry(emptyRegistry);
});
it("sorts channel plugins by configured order", () => {
const registry = createTestRegistry(
["slack", "telegram", "signal"].map((id) => ({
pluginId: id,
plugin: createPlugin(id),
source: "test",
})),
);
setActivePluginRegistry(registry);
const pluginIds = listChannelPlugins().map((plugin) => plugin.id);
expect(pluginIds).toEqual(["telegram", "slack", "signal"]);
});
});