refactor: migrate messaging plugins to sdk

This commit is contained in:
Peter Steinberger
2026-01-18 08:32:19 +00:00
parent 9241e21114
commit c5e19f5c67
63 changed files with 4082 additions and 376 deletions

View File

@@ -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"]);
});
});