Files
openclaw/extensions/slack/src/outbound-payload.test-harness.ts
Altay 554bc0a9fd fix(plugins): keep test helpers out of contract barrels (#63311)
Merged via squash.

Prepared head SHA: 769e90c6af
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-08 22:59:05 +01:00

39 lines
1.0 KiB
TypeScript

import type { ReplyPayload } from "openclaw/plugin-sdk/reply-runtime";
import { primeChannelOutboundSendMock } from "openclaw/plugin-sdk/testing";
import { vi, type Mock } from "vitest";
import { slackOutbound } from "./outbound-adapter.js";
type OutboundSendMock = Mock<(...args: unknown[]) => Promise<Record<string, unknown>>>;
type SlackOutboundPayloadHarness = {
run: () => Promise<Record<string, unknown>>;
sendMock: OutboundSendMock;
to: string;
};
export function createSlackOutboundPayloadHarness(params: {
payload: ReplyPayload;
sendResults?: Array<{ messageId: string }>;
}): SlackOutboundPayloadHarness {
const sendSlack: OutboundSendMock = vi.fn();
primeChannelOutboundSendMock(
sendSlack,
{ messageId: "sl-1", channelId: "C12345", ts: "1234.5678" },
params.sendResults,
);
const ctx = {
cfg: {},
to: "C12345",
text: "",
payload: params.payload,
deps: {
sendSlack,
},
};
return {
run: async () => await slackOutbound.sendPayload!(ctx),
sendMock: sendSlack,
to: ctx.to,
};
}