refactor(slack): reuse shared prepare test scaffolding

This commit is contained in:
Peter Steinberger
2026-03-07 16:50:28 +00:00
parent 08aae60dc9
commit d33efeef10

View File

@@ -7,12 +7,11 @@ import { expectInboundContextContract } from "../../../../test/helpers/inbound-c
import type { OpenClawConfig } from "../../../config/config.js";
import { resolveAgentRoute } from "../../../routing/resolve-route.js";
import { resolveThreadSessionKeys } from "../../../routing/session-key.js";
import type { RuntimeEnv } from "../../../runtime.js";
import type { ResolvedSlackAccount } from "../../accounts.js";
import type { SlackMessageEvent } from "../../types.js";
import type { SlackMonitorContext } from "../context.js";
import { createSlackMonitorContext } from "../context.js";
import { prepareSlackMessage } from "./prepare.js";
import { createInboundSlackTestContext, createSlackTestAccount } from "./prepare.test-helpers.js";
describe("slack prepareSlackMessage inbound contract", () => {
let fixtureRoot = "";
@@ -38,53 +37,7 @@ describe("slack prepareSlackMessage inbound contract", () => {
}
});
function createInboundSlackCtx(params: {
cfg: OpenClawConfig;
appClient?: App["client"];
defaultRequireMention?: boolean;
replyToMode?: "off" | "all";
channelsConfig?: Record<string, { systemPrompt: string }>;
}) {
return createSlackMonitorContext({
cfg: params.cfg,
accountId: "default",
botToken: "token",
app: { client: params.appClient ?? {} } as App,
runtime: {} as RuntimeEnv,
botUserId: "B1",
teamId: "T1",
apiAppId: "A1",
historyLimit: 0,
sessionScope: "per-sender",
mainKey: "main",
dmEnabled: true,
dmPolicy: "open",
allowFrom: [],
allowNameMatching: false,
groupDmEnabled: true,
groupDmChannels: [],
defaultRequireMention: params.defaultRequireMention ?? true,
channelsConfig: params.channelsConfig,
groupPolicy: "open",
useAccessGroups: false,
reactionMode: "off",
reactionAllowlist: [],
replyToMode: params.replyToMode ?? "off",
threadHistoryScope: "thread",
threadInheritParent: false,
slashCommand: {
enabled: false,
name: "openclaw",
sessionPrefix: "slack:slash",
ephemeral: true,
},
textLimit: 4000,
ackReactionScope: "group-mentions",
typingReaction: "",
mediaMaxBytes: 1024,
removeAckAfterReply: false,
});
}
const createInboundSlackCtx = createInboundSlackTestContext;
function createDefaultSlackCtx() {
const slackCtx = createInboundSlackCtx({
@@ -115,19 +68,7 @@ describe("slack prepareSlackMessage inbound contract", () => {
});
}
function createSlackAccount(config: ResolvedSlackAccount["config"] = {}): ResolvedSlackAccount {
return {
accountId: "default",
enabled: true,
botTokenSource: "config",
appTokenSource: "config",
userTokenSource: "none",
config,
replyToMode: config.replyToMode,
replyToModeByChatType: config.replyToModeByChatType,
dm: config.dm,
};
}
const createSlackAccount = createSlackTestAccount;
function createSlackMessage(overrides: Partial<SlackMessageEvent>): SlackMessageEvent {
return {