Spaces:
Paused
Paused
| 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"]); | |
| }); | |
| }); | |