refactor: migrate messaging plugins to sdk
This commit is contained in:
@@ -1,12 +1,46 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { CHANNEL_IDS } from "../registry.js";
|
||||
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", () => {
|
||||
it("includes the built-in channel ids", () => {
|
||||
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);
|
||||
for (const id of CHANNEL_IDS) {
|
||||
expect(pluginIds).toContain(id);
|
||||
}
|
||||
expect(pluginIds).toEqual(["telegram", "slack", "signal"]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user