From 6de5f92835168e5ab7c41fdf962b9df611d1f2c5 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 19 Apr 2026 03:24:43 +0100 Subject: [PATCH] test: share command delivery media fixture --- src/agents/command/delivery.test.ts | 72 ++++++++++++----------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/src/agents/command/delivery.test.ts b/src/agents/command/delivery.test.ts index 2e4e9383e2c..df310ba3962 100644 --- a/src/agents/command/delivery.test.ts +++ b/src/agents/command/delivery.test.ts @@ -28,6 +28,7 @@ vi.mock("../../auto-reply/reply/reply-media-paths.runtime.js", () => ({ type NormalizeParams = Parameters[0]; type RunResult = NormalizeParams["result"]; +type DeliverParams = Parameters[0]; const slackOutboundForTest: ChannelOutboundAdapter = { deliveryMode: "direct", @@ -64,6 +65,29 @@ function createResult(overrides: Partial = {}): RunResult { } as RunResult; } +async function deliverMediaReplyForTest(outboundSession: DeliverParams["outboundSession"]) { + const runtime = { log: vi.fn(), error: vi.fn() }; + return await deliverAgentCommandResult({ + cfg: { + agents: { + list: [{ id: "tester", workspace: "/tmp/agent-workspace" }], + }, + } as OpenClawConfig, + deps: {} as CliDeps, + runtime: runtime as never, + opts: { + message: "go", + deliver: true, + replyChannel: "slack", + replyTo: "#general", + } as AgentCommandOpts, + outboundSession, + sessionEntry: undefined, + payloads: [{ text: "here you go", mediaUrls: ["./out/photo.png"] }], + result: createResult(), + }); +} + describe("normalizeAgentCommandReplyPayloads", () => { beforeEach(() => { setActivePluginRegistry(slackRegistry); @@ -157,7 +181,6 @@ describe("normalizeAgentCommandReplyPayloads", () => { }); it("normalizes reply-media paths before outbound delivery", async () => { - const runtime = { log: vi.fn(), error: vi.fn() }; const normalizerFn = vi.fn( async (payload: ReplyPayload): Promise => ({ ...payload, @@ -168,28 +191,10 @@ describe("normalizeAgentCommandReplyPayloads", () => { createReplyMediaPathNormalizerMock.mockReturnValue(normalizerFn); deliverOutboundPayloadsMock.mockResolvedValue([]); - await deliverAgentCommandResult({ - cfg: { - agents: { - list: [{ id: "tester", workspace: "/tmp/agent-workspace" }], - }, - } as OpenClawConfig, - deps: {} as CliDeps, - runtime: runtime as never, - opts: { - message: "go", - deliver: true, - replyChannel: "slack", - replyTo: "#general", - } as AgentCommandOpts, - outboundSession: { - key: "agent:tester:slack:direct:alice", - agentId: "tester", - } as never, - sessionEntry: undefined, - payloads: [{ text: "here you go", mediaUrls: ["./out/photo.png"] }], - result: createResult(), - }); + await deliverMediaReplyForTest({ + key: "agent:tester:slack:direct:alice", + agentId: "tester", + } as never); expect(createReplyMediaPathNormalizerMock).toHaveBeenCalledWith( expect.objectContaining({ @@ -211,29 +216,10 @@ describe("normalizeAgentCommandReplyPayloads", () => { }); it("threads agentId into the normalizer when sessionKey is unresolved", async () => { - const runtime = { log: vi.fn(), error: vi.fn() }; createReplyMediaPathNormalizerMock.mockReturnValue(async (payload: ReplyPayload) => payload); deliverOutboundPayloadsMock.mockResolvedValue([]); - await deliverAgentCommandResult({ - cfg: { - agents: { - list: [{ id: "tester", workspace: "/tmp/agent-workspace" }], - }, - } as OpenClawConfig, - deps: {} as CliDeps, - runtime: runtime as never, - opts: { - message: "go", - deliver: true, - replyChannel: "slack", - replyTo: "#general", - } as AgentCommandOpts, - outboundSession: { agentId: "tester" } as never, - sessionEntry: undefined, - payloads: [{ text: "here you go", mediaUrls: ["./out/photo.png"] }], - result: createResult(), - }); + await deliverMediaReplyForTest({ agentId: "tester" } as never); expect(createReplyMediaPathNormalizerMock).toHaveBeenCalledWith( expect.objectContaining({