

























@@ -1123,7 +1123,13 @@ describe("deliverOutboundPayloads", () => {
11231123},
11241124});
112511251126-const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? [];
1126+const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [
1127+{
1128+messageProvider?: unknown;
1129+requesterSenderId?: unknown;
1130+sessionKey?: unknown;
1131+},
1132+];
11271133expect(mediaAccessOptions?.sessionKey).toBe("agent:main:matrix:room:ops");
11281134expect(mediaAccessOptions?.messageProvider).toBeUndefined();
11291135expect(mediaAccessOptions?.requesterSenderId).toBe("attacker");
@@ -1152,7 +1158,14 @@ describe("deliverOutboundPayloads", () => {
11521158},
11531159});
115411601155-const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? [];
1161+const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [
1162+{
1163+requesterSenderE164?: unknown;
1164+requesterSenderId?: unknown;
1165+requesterSenderName?: unknown;
1166+requesterSenderUsername?: unknown;
1167+},
1168+];
11561169expect(mediaAccessOptions?.requesterSenderId).toBe("id:matrix:123");
11571170expect(mediaAccessOptions?.requesterSenderName).toBe("Alice");
11581171expect(mediaAccessOptions?.requesterSenderUsername).toBe("alice_u");
@@ -1181,7 +1194,13 @@ describe("deliverOutboundPayloads", () => {
11811194},
11821195});
118311961184-const [mediaAccessOptions] = resolveMediaAccessSpy.mock.calls.at(0) ?? [];
1197+const [mediaAccessOptions] = requireMockCall(resolveMediaAccessSpy, "media access") as [
1198+{
1199+accountId?: unknown;
1200+requesterSenderId?: unknown;
1201+sessionKey?: unknown;
1202+},
1203+];
11851204expect(mediaAccessOptions?.sessionKey).toBe("agent:main:matrix:room:ops");
11861205expect(mediaAccessOptions?.accountId).toBe("source-account");
11871206expect(mediaAccessOptions?.requesterSenderId).toBe("attacker");
@@ -1489,7 +1508,7 @@ describe("deliverOutboundPayloads", () => {
14891508payloads: [{ text: "original" }],
14901509});
149115101492-expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("visible");
1511+expect(requireMockCallArg(sendText, "sendText").text).toBe("visible");
14931512});
1494151314951514it("strips internal runtime scaffolding before adapter payload normalization copies text", async () => {
@@ -1533,7 +1552,7 @@ describe("deliverOutboundPayloads", () => {
15331552payloads: [{ text: "original" }],
15341553});
153515541536-const deliveredPayload = sendPayload.mock.calls.at(0)?.[0]?.payload as
1555+const deliveredPayload = requireMockCallArg(sendPayload, "sendPayload").payload as
15371556| { channelData?: unknown; text?: unknown }
15381557| undefined;
15391558expect(deliveredPayload?.text).toBe("visible");
@@ -1647,12 +1666,10 @@ describe("deliverOutboundPayloads", () => {
16471666],
16481667});
164916681650-expect(JSON.stringify(sendPayload.mock.calls.at(0)?.[0]?.payload)).not.toContain(
1651-"previous_response",
1652-);
1653-const deliveredPayload = sendPayload.mock.calls.at(0)?.[0]?.payload as
1669+const deliveredPayload = requireMockCallArg(sendPayload, "sendPayload").payload as
16541670| { channelData?: unknown; interactive?: unknown; text?: unknown }
16551671| undefined;
1672+expect(JSON.stringify(deliveredPayload)).not.toContain("previous_response");
16561673expect(deliveredPayload?.text).toBe("visible");
16571674expect(deliveredPayload?.channelData).toStrictEqual({
16581675renderedText: "visible",
@@ -1693,7 +1710,7 @@ describe("deliverOutboundPayloads", () => {
16931710payloads: [{ text: "hello" }],
16941711});
169517121696-const afterDeliveryOptions = afterDeliverPayload.mock.calls.at(0)?.[0] as
1713+const afterDeliveryOptions = requireMockCallArg(afterDeliverPayload, "afterDeliverPayload") as
16971714| {
16981715payload?: { text?: unknown };
16991716results?: unknown;
@@ -1755,7 +1772,7 @@ describe("deliverOutboundPayloads", () => {
17551772});
1756177317571774expect(sendFormattedText).toHaveBeenCalledTimes(1);
1758-const formattedTextOptions = sendFormattedText.mock.calls.at(0)?.[0] as
1775+const formattedTextOptions = requireMockCallArg(sendFormattedText, "sendFormattedText") as
17591776| { accountId?: unknown; text?: unknown; to?: unknown }
17601777| undefined;
17611778expect(formattedTextOptions?.to).toBe("U123");
@@ -1777,7 +1794,7 @@ describe("deliverOutboundPayloads", () => {
17771794});
1778179517791796expect(sendFormattedMedia).toHaveBeenCalledTimes(1);
1780-const sendFormattedMediaCall = sendFormattedMedia.mock.calls.at(0)?.[0] as
1797+const sendFormattedMediaCall = requireMockCallArg(sendFormattedMedia, "sendFormattedMedia") as
17811798| { mediaLocalRoots?: string[]; mediaUrl?: unknown; text?: unknown; to?: unknown }
17821799| undefined;
17831800expect(sendFormattedMediaCall?.to).toBe("U123");
@@ -1947,9 +1964,10 @@ describe("deliverOutboundPayloads", () => {
19471964],
19481965});
194919661950-const sendingCall = hookMocks.runner.runMessageSending.mock.calls.at(0) as
1951-| [{ content?: unknown }, { channelId?: unknown }]
1952-| undefined;
1967+const sendingCall = requireMockCall(
1968+hookMocks.runner.runMessageSending,
1969+"message_sending hook",
1970+) as [{ content?: unknown }, { channelId?: unknown }] | undefined;
19531971expect(sendingCall?.[0]?.content).toBe("original hidden transcript");
19541972expect(sendingCall?.[1]?.channelId).toBe("matrix");
19551973const sendMediaOptions = (
@@ -1960,7 +1978,7 @@ describe("deliverOutboundPayloads", () => {
19601978expect(sendMediaOptions?.text).toBe("");
19611979expect(sendMediaOptions?.mediaUrl).toBe("file:///tmp/clip.opus");
19621980expect(sendMediaOptions?.audioAsVoice).toBe(true);
1963-const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as
1981+const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as
19641982| [{ content?: unknown; success?: unknown }, { channelId?: unknown }]
19651983| undefined;
19661984expect(sentCall?.[0]?.content).toBe("rewritten hidden transcript");
@@ -2317,7 +2335,10 @@ describe("deliverOutboundPayloads", () => {
23172335expect(sendMatrix).toHaveBeenCalledTimes(2);
2318233623192337expect(internalHookMocks.createInternalHookEvent).toHaveBeenCalledTimes(1);
2320-const createHookCall = internalHookMocks.createInternalHookEvent.mock.calls.at(0) as
2338+const createHookCall = requireMockCall(
2339+internalHookMocks.createInternalHookEvent,
2340+"create internal hook event",
2341+) as
23212342| [
23222343unknown,
23232344unknown,
@@ -2359,7 +2380,10 @@ describe("deliverOutboundPayloads", () => {
23592380await deliverSingleMatrixForHookTest({ sessionKey: "agent:main:main" });
2360238123612382expect(internalHookMocks.createInternalHookEvent).toHaveBeenCalledTimes(1);
2362-const createHookCall = internalHookMocks.createInternalHookEvent.mock.calls.at(0) as
2383+const createHookCall = requireMockCall(
2384+internalHookMocks.createInternalHookEvent,
2385+"create internal hook event",
2386+) as
23632387| [
23642388unknown,
23652389unknown,
@@ -2399,10 +2423,11 @@ describe("deliverOutboundPayloads", () => {
23992423session: { agentId: "agent-main" },
24002424});
240124252402-expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe(
2426+const warnCall = requireMockCall(logMocks.warn, "warn");
2427+expect(warnCall[0]).toBe(
24032428"deliverOutboundPayloads: session.agentId present without session key; internal message:sent hook will be skipped",
24042429);
2405-const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as
2430+const warnContext = warnCall[1] as
24062431| { agentId?: unknown; channel?: unknown; to?: unknown }
24072432| undefined;
24082433expect(warnContext?.channel).toBe("matrix");
@@ -2690,7 +2715,7 @@ describe("deliverOutboundPayloads", () => {
26902715});
2691271626922717expect(onError).toHaveBeenCalledTimes(1);
2693-const [error, failedPayload] = onError.mock.calls.at(0) ?? [];
2718+const [error, failedPayload] = requireMockCall(onError, "onError");
26942719expect(error).toBeInstanceOf(Error);
26952720expect((failedPayload as { text?: unknown } | undefined)?.text).toBe("hi");
26962721expect((failedPayload as { mediaUrls?: unknown } | undefined)?.mediaUrls).toStrictEqual([
@@ -2753,7 +2778,7 @@ describe("deliverOutboundPayloads", () => {
27532778deps: { matrix: sendMatrix },
27542779});
275527802756-const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as
2781+const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as
27572782| [{ content?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown }]
27582783| undefined;
27592784expect(sentCall?.[0]?.to).toBe("!room:example");
@@ -2828,7 +2853,7 @@ describe("deliverOutboundPayloads", () => {
28282853});
2829285428302855expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]);
2831-expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("provider exploded");
2856+expect(requireMockCallArg(sendText, "sendText").text).toBe("provider exploded");
28322857expect(sendPayload).not.toHaveBeenCalled();
28332858});
28342859@@ -2861,7 +2886,7 @@ describe("deliverOutboundPayloads", () => {
28612886});
2862288728632888expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]);
2864-const sendPayloadOptions = sendPayload.mock.calls.at(0)?.[0] as
2889+const sendPayloadOptions = requireMockCallArg(sendPayload, "sendPayload") as
28652890| { payload?: { isError?: unknown; text?: unknown }; text?: unknown }
28662891| undefined;
28672892expect(sendPayloadOptions?.text).toBe("provider exploded");
@@ -2936,7 +2961,7 @@ describe("deliverOutboundPayloads", () => {
29362961payloads: [{ text: "payload text", channelData: { mode: "custom" } }],
29372962});
293829632939-const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as
2964+const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as
29402965| [{ content?: unknown; success?: unknown; to?: unknown }, { channelId?: unknown }]
29412966| undefined;
29422967expect(sentCall?.[0]?.to).toBe("!room:1");
@@ -2970,10 +2995,11 @@ describe("deliverOutboundPayloads", () => {
2970299529712996expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]);
29722997expect(pinDeliveredMessage).toHaveBeenCalledTimes(1);
2973-expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe(
2998+const warnCall = requireMockCall(logMocks.warn, "warn");
2999+expect(warnCall[0]).toBe(
29743000"Delivery pin requested, but channel failed to pin delivered message.",
29753001);
2976-const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as
3002+const warnContext = warnCall[1] as
29773003| { channel?: unknown; error?: unknown; messageId?: unknown }
29783004| undefined;
29793005expect(warnContext?.channel).toBe("matrix");
@@ -3112,7 +3138,7 @@ describe("deliverOutboundPayloads", () => {
31123138});
3113313931143140expect(sendPayload).toHaveBeenCalledTimes(1);
3115-const sendPayloadOptions = sendPayload.mock.calls.at(0)?.[0] as
3141+const sendPayloadOptions = requireMockCallArg(sendPayload, "sendPayload") as
31163142| { payload?: { channelData?: unknown; text?: unknown } }
31173143| undefined;
31183144expect(sendPayloadOptions?.payload?.text).toBe("");
@@ -3143,13 +3169,12 @@ describe("deliverOutboundPayloads", () => {
31433169});
3144317031453171expect(sendText).toHaveBeenCalledTimes(1);
3146-expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("caption");
3147-expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe(
3172+expect(requireMockCallArg(sendText, "sendText").text).toBe("caption");
3173+const warnCall = requireMockCall(logMocks.warn, "warn");
3174+expect(warnCall[0]).toBe(
31483175"Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used",
31493176);
3150-const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as
3151-| { channel?: unknown; mediaCount?: unknown }
3152-| undefined;
3177+const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined;
31533178expect(warnContext?.channel).toBe("matrix");
31543179expect(warnContext?.mediaCount).toBe(1);
31553180expect(results).toEqual([{ channel: "matrix", messageId: "mx-1" }]);
@@ -3183,13 +3208,12 @@ describe("deliverOutboundPayloads", () => {
31833208});
3184320931853210expect(sendText).toHaveBeenCalledTimes(1);
3186-expect(sendText.mock.calls.at(0)?.[0]?.text).toBe("caption");
3187-expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe(
3211+expect(requireMockCallArg(sendText, "sendText").text).toBe("caption");
3212+const warnCall = requireMockCall(logMocks.warn, "warn");
3213+expect(warnCall[0]).toBe(
31883214"Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used",
31893215);
3190-const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as
3191-| { channel?: unknown; mediaCount?: unknown }
3192-| undefined;
3216+const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined;
31933217expect(warnContext?.channel).toBe("matrix");
31943218expect(warnContext?.mediaCount).toBe(2);
31953219expect(results).toEqual([{ channel: "matrix", messageId: "mx-2" }]);
@@ -3223,15 +3247,14 @@ describe("deliverOutboundPayloads", () => {
32233247);
3224324832253249expect(sendText).not.toHaveBeenCalled();
3226-expect(logMocks.warn.mock.calls.at(0)?.[0]).toBe(
3250+const warnCall = requireMockCall(logMocks.warn, "warn");
3251+expect(warnCall[0]).toBe(
32273252"Plugin outbound adapter does not implement sendMedia; media URLs will be dropped and text fallback will be used",
32283253);
3229-const warnContext = logMocks.warn.mock.calls.at(0)?.[1] as
3230-| { channel?: unknown; mediaCount?: unknown }
3231-| undefined;
3254+const warnContext = warnCall[1] as { channel?: unknown; mediaCount?: unknown } | undefined;
32323255expect(warnContext?.channel).toBe("matrix");
32333256expect(warnContext?.mediaCount).toBe(1);
3234-const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as
3257+const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as
32353258| [
32363259{ content?: unknown; error?: unknown; success?: unknown; to?: unknown },
32373260{ channelId?: unknown },
@@ -3260,7 +3283,7 @@ describe("deliverOutboundPayloads", () => {
32603283}),
32613284).rejects.toThrow("downstream failed");
326232853263-const sentCall = hookMocks.runner.runMessageSent.mock.calls.at(0) as
3286+const sentCall = requireMockCall(hookMocks.runner.runMessageSent, "message_sent hook") as
32643287| [
32653288{ content?: unknown; error?: unknown; success?: unknown; to?: unknown },
32663289{ channelId?: unknown },
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。