test: dedupe outbound delivery mock calls

This commit is contained in:
Peter Steinberger
2026-05-12 16:59:42 +01:00
parent 9076ce0a7d
commit 8c6dd5bddc

View File

@@ -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 },