mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-26 16:41:49 +00:00
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
39 lines
1.0 KiB
TypeScript
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,
|
|
};
|
|
}
|