



























@@ -26,6 +26,38 @@ import {
2626resolveDurableInboundReplyToId,
2727} from "./durable-delivery.js";
282829+function latestSendDurableMessageBatchRequest(): {
30+cfg?: unknown;
31+channel?: string;
32+to?: string;
33+threadId?: string | number | null;
34+durability?: string;
35+} {
36+const [request] = mocks.sendDurableMessageBatch.mock.calls.at(-1) as unknown as [
37+{
38+cfg?: unknown;
39+channel?: string;
40+to?: string;
41+threadId?: string | number | null;
42+durability?: string;
43+},
44+];
45+return request;
46+}
47+48+function latestDeliverySupportRequest(): {
49+requirements?: Record<string, boolean>;
50+} {
51+const [request] = mocks.resolveOutboundDurableFinalDeliverySupport.mock.calls.at(
52+-1,
53+) as unknown as [
54+{
55+requirements?: Record<string, boolean>;
56+},
57+];
58+return request;
59+}
60+2961describe("durable inbound reply delivery", () => {
3062beforeEach(() => {
3163mocks.resolveOutboundDurableFinalDeliverySupport.mockReset();
@@ -95,15 +127,13 @@ describe("durable inbound reply delivery", () => {
95127},
96128});
9712998-expect(mocks.sendDurableMessageBatch).toHaveBeenCalledWith(
99-expect.objectContaining({
100-cfg: {},
101-channel: "telegram",
102-to: "chat-1",
103-threadId: null,
104-durability: "best_effort",
105-}),
106-);
130+expect(mocks.sendDurableMessageBatch).toHaveBeenCalledTimes(1);
131+const request = latestSendDurableMessageBatchRequest();
132+expect(request.cfg).toEqual({});
133+expect(request.channel).toBe("telegram");
134+expect(request.to).toBe("chat-1");
135+expect(request.threadId).toBeNull();
136+expect(request.durability).toBe("best_effort");
107137});
108138109139it("does not require unknown-send reconciliation for the default best-effort final path", async () => {
@@ -119,19 +149,13 @@ describe("durable inbound reply delivery", () => {
119149},
120150});
121151122-expect(mocks.resolveOutboundDurableFinalDeliverySupport).toHaveBeenCalledWith(
123-expect.objectContaining({
124-requirements: {
125-text: true,
126-messageSendingHooks: true,
127-},
128-}),
129-);
130-expect(mocks.sendDurableMessageBatch).toHaveBeenCalledWith(
131-expect.objectContaining({
132-durability: "best_effort",
133-}),
134-);
152+expect(mocks.resolveOutboundDurableFinalDeliverySupport).toHaveBeenCalledTimes(1);
153+expect(latestDeliverySupportRequest().requirements).toEqual({
154+text: true,
155+messageSendingHooks: true,
156+});
157+expect(mocks.sendDurableMessageBatch).toHaveBeenCalledTimes(1);
158+expect(latestSendDurableMessageBatchRequest().durability).toBe("best_effort");
135159});
136160137161it("uses required durability when a caller explicitly requires unknown-send reconciliation", async () => {
@@ -151,19 +175,13 @@ describe("durable inbound reply delivery", () => {
151175},
152176});
153177154-expect(mocks.resolveOutboundDurableFinalDeliverySupport).toHaveBeenCalledWith(
155-expect.objectContaining({
156-requirements: {
157-text: true,
158-reconcileUnknownSend: true,
159-},
160-}),
161-);
162-expect(mocks.sendDurableMessageBatch).toHaveBeenCalledWith(
163-expect.objectContaining({
164-durability: "required",
165-}),
166-);
178+expect(mocks.resolveOutboundDurableFinalDeliverySupport).toHaveBeenCalledTimes(1);
179+expect(latestDeliverySupportRequest().requirements).toEqual({
180+text: true,
181+reconcileUnknownSend: true,
182+});
183+expect(mocks.sendDurableMessageBatch).toHaveBeenCalledTimes(1);
184+expect(latestSendDurableMessageBatchRequest().durability).toBe("required");
167185});
168186169187it("reports durable partial send failures as failed delivery", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。