Files
openclaw/test/helpers/channels/inbound-contract.discord.ts
2026-04-08 07:03:21 +01:00

29 lines
1.2 KiB
TypeScript

import { it } from "vitest";
import { expectChannelInboundContextContract } from "../../../src/channels/plugins/contracts/test-helpers.js";
import { resolveRelativeBundledPluginPublicModuleId } from "../../../src/test-utils/bundled-plugin-public-surface.js";
type BuildFinalizedDiscordDirectInboundContext =
() => import("../../../src/auto-reply/templating.js").MsgContext;
const discordInboundContextHarnessModuleId = resolveRelativeBundledPluginPublicModuleId({
fromModuleUrl: import.meta.url,
pluginId: "discord",
artifactBasename: "src/monitor/inbound-context.test-helpers.js",
});
async function getBuildFinalizedDiscordDirectInboundContext(): Promise<BuildFinalizedDiscordDirectInboundContext> {
const module = (await import(discordInboundContextHarnessModuleId)) as {
buildFinalizedDiscordDirectInboundContext: BuildFinalizedDiscordDirectInboundContext;
};
return module.buildFinalizedDiscordDirectInboundContext;
}
export function installDiscordInboundContractSuite() {
it("keeps inbound context finalized", async () => {
const buildContext = await getBuildFinalizedDiscordDirectInboundContext();
const ctx = buildContext();
expectChannelInboundContextContract(ctx);
});
}