From 8c6dd5bddca8f60eb0059fa93a558b2c2ee2836f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 12 May 2026 16:59:42 +0100 Subject: [PATCH] test: dedupe outbound delivery mock calls --- src/infra/outbound/deliver.test.ts | 111 +++++++++++++++++------------ 1 file changed, 67 insertions(+), 44 deletions(-) diff --git a/src/infra/outbound/deliver.test.ts b/src/infra/outbound/deliver.test.ts index a94da13fb41..bf21842bb9c 100644 --- a/src/infra/outbound/deliver.test.ts +++ b/src/infra/outbound/deliver.test.ts @@ -1123,7 +1123,13 @@ describe("deliverOutboundPayloads", () => { }, }); - const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? []; + const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [ + { + messageProvider?: unknown; + requesterSenderId?: unknown; + sessionKey?: unknown; + }, + ]; expect(mediaAccessOptions?.sessionKey).toBe("agent:main:matrix:room:ops"); expect(mediaAccessOptions?.messageProvider).toBeUndefined(); expect(mediaAccessOptions?.requesterSenderId).toBe("attacker"); @@ -1152,7 +1158,14 @@ describe("deliverOutboundPayloads", () => { }, }); - const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? []; + const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [ + { + requesterSenderE164?: unknown; + requesterSenderId?: unknown; + requesterSenderName?: unknown; + requesterSenderUsername?: unknown; + }, + ]; expect(mediaAccessOptions?.requesterSenderId).toBe("id:matrix:123"); expect(mediaAccessOptions?.requesterSenderName).toBe("Alice"); expect(mediaAccessOptions?.requesterSenderUsername).toBe("alice_u"); @@ -1181,7 +1194,13 @@ describe("deliverOutboundPayloads", () => { }, }); - const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? []; + const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [ + { + accountId?: unknown; + requesterSenderId?: unknown; + sessionKey?: unknown; + }, + ]; expect(mediaAccessOptions?.sessionKey).toBe("agent:main:matrix:room:ops"); expect(mediaAccessOptions?.accountId).toBe("source-account"); expect(mediaAccessOptions?.requesterSenderId).toBe("attacker"); @@ -1489,7 +1508,7 @@ describe("deliverOutboundPayloads", () => { payloads: [{ text: "original" }], }); - expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("visible"); + expect(requireMockCallArg(sendText, "sendText").text).toBe("visible"); }); it("strips internal runtime scaffolding before adapter payload normalization copies text", async () => { @@ -1533,7 +1552,7 @@ describe("deliverOutboundPayloads", () => { payloads: [{ text: "original" }], }); - const deliveredPayload = sendPayload.mock.calls.at(0)?.[0]?.payload as + const deliveredPayload = requireMockCallArg(sendPayload, "sendPayload").payload as | { channelData?: unknown; text?: unknown } | undefined; expect(deliveredPayload?.text).toBe("visible"); @@ -1647,12 +1666,10 @@ describe("deliverOutboundPayloads", () => { ], }); - expect(JSON.stringify(sendPayload.mock.calls.at(0)?.[0]?.payload)).not.toContain( - "previous_response", - ); - const deliveredPayload = sendPayload.mock.calls.at(0)?.[0]?.payload as + const deliveredPayload = requireMockCallArg(sendPayload, "sendPayload").payload as | { channelData?: unknown; interactive?: unknown; text?: unknown } | undefined; + expect(JSON.stringify(deliveredPayload)).not.toContain("previous_response"); expect(deliveredPayload?.text).toBe("visible"); expect(deliveredPayload?.channelData).toStrictEqual({ renderedText: "visible", @@ -1693,7 +1710,7 @@ describe("deliverOutboundPayloads", () => { payloads: [{ text: "hello" }], }); - const afterDeliveryOptions = afterDeliverPayload.mock.calls.at(0)?.[0] as + const afterDeliveryOptions = requireMockCallArg(afterDeliverPayload, "afterDeliverPayload") as | { payload?: { text?: unknown }; results?: unknown; @@ -1755,7 +1772,7 @@ describe("deliverOutboundPayloads", () => { }); expect(sendFormattedText).toHaveBeenCalledTimes(1); - const formattedTextOptions = sendFormattedText.mock.calls.at(0)?.[0] as + const formattedTextOptions = requireMockCallArg(sendFormattedText, "sendFormattedText") as | { accountId?: unknown; text?: unknown; to?: unknown } | undefined; expect(formattedTextOptions?.to).toBe("U123"); @@ -1777,7 +1794,7 @@ describe("deliverOutboundPayloads", () => { }); expect(sendFormattedMedia).toHaveBeenCalledTimes(1); - const sendFormattedMediaCall = sendFormattedMedia.mock.calls.at(0)?.[0] as + const sendFormattedMediaCall = requireMockCallArg(sendFormattedMedia, "sendFormattedMedia") as | { mediaLocalRoots?: string[]; mediaUrl?: unknown; text?: unknown; to?: unknown } | undefined; expect(sendFormattedMediaCall?.to).toBe("U123"); @@ -1947,9 +1964,10 @@ describe("deliverOutboundPayloads", () => { ], }); - const sendingCall = hookMocks.runner.runMessageSending.mock.calls.at(0) as - | [{ content?: unknown }, { channelId?: unknown }] - | undefined; + const sendingCall = requireMockCall( + hookMocks.runner.runMessageSending, + "message_sending hook", + ) as [{ content?: unknown }, { channelId?: unknown }] | undefined; expect(sendingCall?.[0]?.content).toBe("original hidden transcript"); expect(sendingCall?.[1]?.channelId).toBe("matrix"); const sendMediaOptions = ( @@ -1960,7 +1978,7 @@ describe("deliverOutboundPayloads", () => { expect(sendMediaOptions?.text).toBe(""); expect(sendMediaOptions?.mediaUrl).toBe("file:///tmp/clip.opus"); expect(sendMediaOptions?.audioAsVoice).toBe(true); - const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as + const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as | [{ content?: unknown; success?: unknown }, { channelId?: unknown }] | undefined; expect(sentCall?.[0]?.content).toBe("rewritten hidden transcript"); @@ -2317,7 +2335,10 @@ describe("deliverOutboundPayloads", () => { expect(sendMatrix).toHaveBeenCalledTimes(2); expect(internalHookMocks.createInternalHookEvent).toHaveBeenCalledTimes(1); - const createHookCall = internalHookMocks.createInternalHookEvent.mock.calls.at(0) as + const createHookCall = requireMockCall( + internalHookMocks.createInternalHookEvent, + "create internal hook event", + ) as | [ unknown, unknown, @@ -2359,7 +2380,10 @@ describe("deliverOutboundPayloads", () => { await deliverSingleMatrixForHookTest({ sessionKey: "agent:main:main" }); expect(internalHookMocks.createInternalHookEvent).toHaveBeenCalledTimes(1); - const createHookCall = internalHookMocks.createInternalHookEvent.mock.calls.at(0) as + const createHookCall = requireMockCall( + internalHookMocks.createInternalHookEvent, + "create internal hook event", + ) as | [ unknown, unknown, @@ -2399,10 +2423,11 @@ describe("deliverOutboundPayloads", () => { session: { agentId: "agent-main" }, }); - expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe( + const warnCall = requireMockCall(logMocks.warn, "warn"); + expect(warnCall[0]).toBe( "deliverOutboundPayloads: session.agentId present without session key; internal message:sent hook will be skipped", ); - const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as + const warnContext = warnCall[1] as | { agentId?: unknown; channel?: unknown; to?: unknown } | undefined; expect(warnContext?.channel).toBe("matrix"); @@ -2690,7 +2715,7 @@ describe("deliverOutboundPayloads", () => { }); expect(onError).toHaveBeenCalledTimes(1); - const [error, failedPayload] = onError.mock.calls.at(0) ?? []; + const [error, failedPayload] = requireMockCall(onError, "onError"); expect(error).toBeInstanceOf(Error); expect((failedPayload as { text?: unknown } | undefined)?.text).toBe("hi"); expect((failedPayload as { mediaUrls?: unknown } | undefined)?.mediaUrls).toStrictEqual([ @@ -2753,7 +2778,7 @@ describe("deliverOutboundPayloads", () => { deps: { matrix: sendMatrix }, }); - const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as + const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as | [{ content?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown }] | undefined; expect(sentCall?.[0]?.to).toBe("!room:example"); @@ -2828,7 +2853,7 @@ describe("deliverOutboundPayloads", () => { }); expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]); - expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("provider exploded"); + expect(requireMockCallArg(sendText, "sendText").text).toBe("provider exploded"); expect(sendPayload).not.toHaveBeenCalled(); }); @@ -2861,7 +2886,7 @@ describe("deliverOutboundPayloads", () => { }); expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]); - const sendPayloadOptions = sendPayload.mock.calls.at(0)?.[0] as + const sendPayloadOptions = requireMockCallArg(sendPayload, "sendPayload") as | { payload?: { isError?: unknown; text?: unknown }; text?: unknown } | undefined; expect(sendPayloadOptions?.text).toBe("provider exploded"); @@ -2936,7 +2961,7 @@ describe("deliverOutboundPayloads", () => { payloads: [{ text: "payload text", channelData: { mode: "custom" } }], }); - const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as + const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as | [{ content?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown }] | undefined; expect(sentCall?.[0]?.to).toBe("!room:1"); @@ -2970,10 +2995,11 @@ describe("deliverOutboundPayloads", () => { expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]); expect(pinDeliveredMessage).toHaveBeenCalledTimes(1); - expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe( + const warnCall = requireMockCall(logMocks.warn, "warn"); + expect(warnCall[0]).toBe( "Delivery pin requested, but channel failed to pin delivered message.", ); - const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as + const warnContext = warnCall[1] as | { channel?: unknown; error?: unknown; messageId?: unknown } | undefined; expect(warnContext?.channel).toBe("matrix"); @@ -3112,7 +3138,7 @@ describe("deliverOutboundPayloads", () => { }); expect(sendPayload).toHaveBeenCalledTimes(1); - const sendPayloadOptions = sendPayload.mock.calls.at(0)?.[0] as + const sendPayloadOptions = requireMockCallArg(sendPayload, "sendPayload") as | { payload?: { channelData?: unknown; text?: unknown } } | undefined; expect(sendPayloadOptions?.payload?.text).toBe(""); @@ -3143,13 +3169,12 @@ describe("deliverOutboundPayloads", () => { }); expect(sendText).toHaveBeenCalledTimes(1); - expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("caption"); - expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe( + expect(requireMockCallArg(sendText, "sendText").text).toBe("caption"); + const warnCall = requireMockCall(logMocks.warn, "warn"); + expect(warnCall[0]).toBe( "Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used", ); - const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as - | { channel?: unknown; mediaCount?: unknown } - | undefined; + const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined; expect(warnContext?.channel).toBe("matrix"); expect(warnContext?.mediaCount).toBe(1); expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]); @@ -3183,13 +3208,12 @@ describe("deliverOutboundPayloads", () => { }); expect(sendText).toHaveBeenCalledTimes(1); - expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("caption"); - expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe( + expect(requireMockCallArg(sendText, "sendText").text).toBe("caption"); + const warnCall = requireMockCall(logMocks.warn, "warn"); + expect(warnCall[0]).toBe( "Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used", ); - const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as - | { channel?: unknown; mediaCount?: unknown } - | undefined; + const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined; expect(warnContext?.channel).toBe("matrix"); expect(warnContext?.mediaCount).toBe(2); expect(results).toEqual([{ channel: "matrix", messageId: "mx-2" }]); @@ -3223,15 +3247,14 @@ describe("deliverOutboundPayloads", () => { ); expect(sendText).not.toHaveBeenCalled(); - expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe( + const warnCall = requireMockCall(logMocks.warn, "warn"); + expect(warnCall[0]).toBe( "Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used", ); - const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as - | { channel?: unknown; mediaCount?: unknown } - | undefined; + const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined; expect(warnContext?.channel).toBe("matrix"); expect(warnContext?.mediaCount).toBe(1); - const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as + const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as | [ { content?: unknown; error?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown }, @@ -3260,7 +3283,7 @@ describe("deliverOutboundPayloads", () => { }), ).rejects.toThrow("downstream failed"); - const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as + const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as | [ { content?: unknown; error?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown },