

























@@ -109,6 +109,24 @@ function expectDeliveryCallFields(expected: Record<string, unknown>): Record<str
109109);
110110}
111111112+function readPayloadSummary(
113+deliveryCall: Record<string, unknown>,
114+): Array<{ text: string; mediaUrl: string | null; mediaUrls: string[] }> {
115+const payloads = deliveryCall.payloads;
116+if (!Array.isArray(payloads)) {
117+return [];
118+}
119+return payloads.map((payload, index) => {
120+const payloadRecord = requireRecord(payload, `outbound payload ${index}`);
121+const mediaUrls = payloadRecord.mediaUrls;
122+return {
123+text: typeof payloadRecord.text === "string" ? payloadRecord.text : "",
124+mediaUrl: typeof payloadRecord.mediaUrl === "string" ? payloadRecord.mediaUrl : null,
125+mediaUrls: Array.isArray(mediaUrls) ? mediaUrls.filter((url) => typeof url === "string") : [],
126+};
127+});
128+}
129+112130describe("sendMessage", () => {
113131beforeAll(async () => {
114132({ sendMessage } = await import("./message.js"));
@@ -418,20 +436,14 @@ describe("sendMessage", () => {
418436});
419437420438expect(mocks.deliverOutboundPayloads).toHaveBeenCalledTimes(1);
421-const deliveryCall = mocks.deliverOutboundPayloads.mock.calls[0]?.[0] as
422-| {
423-payloads?: Array<{ text?: string; mediaUrl?: string; mediaUrls?: string[] }>;
424-mirror?: unknown;
425-}
426-| undefined;
427-const payloadSummary = (deliveryCall?.payloads ?? []).map((payload) => ({
428-text: payload.text ?? "",
429-mediaUrl: payload.mediaUrl ?? null,
430-mediaUrls: payload.mediaUrls ?? [],
431-}));
439+const deliveryCall = requireRecord(
440+getMockCallArg(mocks.deliverOutboundPayloads, 0, 0, "outbound delivery"),
441+"outbound delivery params",
442+);
443+const payloadSummary = readPayloadSummary(deliveryCall);
432444expect(payloadSummary, entry.name).toEqual(entry.expectedPayloads);
433445expectRecordFields(
434-deliveryCall?.mirror,
446+deliveryCall.mirror,
435447{
436448sessionKey: "agent:main:forum:dm:123456",
437449text: entry.expectedMirror.text,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。