35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
import type { ChannelPlugin } from "../channels/plugins/types.js";
|
|
import { setActivePluginRegistry } from "../plugins/runtime.js";
|
|
import { createMSTeamsTestPluginBase, createTestRegistry } from "../test-utils/channel-plugins.js";
|
|
import { resolveGatewayMessageChannel } from "./message-channel.js";
|
|
|
|
const emptyRegistry = createTestRegistry([]);
|
|
const msteamsPlugin: ChannelPlugin = {
|
|
...createMSTeamsTestPluginBase(),
|
|
};
|
|
|
|
describe("message-channel", () => {
|
|
beforeEach(() => {
|
|
setActivePluginRegistry(emptyRegistry);
|
|
});
|
|
|
|
afterEach(() => {
|
|
setActivePluginRegistry(emptyRegistry);
|
|
});
|
|
|
|
it("normalizes gateway message channels and rejects unknown values", () => {
|
|
expect(resolveGatewayMessageChannel("discord")).toBe("discord");
|
|
expect(resolveGatewayMessageChannel(" imsg ")).toBe("imessage");
|
|
expect(resolveGatewayMessageChannel("web")).toBeUndefined();
|
|
expect(resolveGatewayMessageChannel("nope")).toBeUndefined();
|
|
});
|
|
|
|
it("normalizes plugin aliases when registered", () => {
|
|
setActivePluginRegistry(
|
|
createTestRegistry([{ pluginId: "msteams", plugin: msteamsPlugin, source: "test" }]),
|
|
);
|
|
expect(resolveGatewayMessageChannel("teams")).toBe("msteams");
|
|
});
|
|
});
|