



























@@ -65,6 +65,27 @@ function createOptions(
6565} as unknown as GatewayRequestHandlerOptions;
6666}
676768+function requireRecord(value: unknown): Record<string, unknown> {
69+expect(value).toBeTruthy();
70+expect(typeof value).toBe("object");
71+expect(Array.isArray(value)).toBe(false);
72+return value as Record<string, unknown>;
73+}
74+75+function requireFirstCallArg(mock: { mock: { calls: readonly (readonly unknown[])[] } }) {
76+const call = mock.mock.calls[0];
77+expect(call).toBeTruthy();
78+return call?.[0];
79+}
80+81+function requireRespondPayload(respond: ReturnType<typeof vi.fn>): Record<string, unknown> {
82+const call = respond.mock.calls[0];
83+expect(call).toBeTruthy();
84+expect(call?.[0]).toBe(true);
85+expect(call?.[2]).toBeUndefined();
86+return requireRecord(call?.[1]);
87+}
88+6889describe("channelsHandlers channels.status", () => {
6990beforeEach(() => {
7091vi.clearAllMocks();
@@ -116,23 +137,13 @@ describe("channelsHandlers channels.status", () => {
116137config: {},
117138env: process.env,
118139});
119-expect(mocks.buildChannelAccountSnapshot).toHaveBeenCalledWith(
120-expect.objectContaining({
121-cfg: autoEnabledConfig,
122-accountId: "default",
123-}),
124-);
125-expect(respond).toHaveBeenCalledWith(
126-true,
127-expect.objectContaining({
128-channels: {
129-whatsapp: expect.objectContaining({
130-configured: true,
131-}),
132-},
133-}),
134-undefined,
135-);
140+const snapshotArgs = requireRecord(requireFirstCallArg(mocks.buildChannelAccountSnapshot));
141+expect(snapshotArgs.cfg).toBe(autoEnabledConfig);
142+expect(snapshotArgs.accountId).toBe("default");
143+const payload = requireRespondPayload(respond);
144+const channels = requireRecord(payload.channels);
145+const whatsapp = requireRecord(channels.whatsapp);
146+expect(whatsapp.configured).toBe(true);
136147});
137148138149it("caps probe timeout before passing it to channel plugins", async () => {
@@ -156,12 +167,9 @@ describe("channelsHandlers channels.status", () => {
156167157168await channelsHandlers["channels.status"](createOptions({ probe: true, timeoutMs: 999_999 }));
158169159-expect(probeAccount).toHaveBeenCalledWith(
160-expect.objectContaining({
161-timeoutMs: 30_000,
162-cfg: autoEnabledConfig,
163-}),
164-);
170+const probeArgs = requireRecord(requireFirstCallArg(probeAccount));
171+expect(probeArgs.timeoutMs).toBe(30_000);
172+expect(probeArgs.cfg).toBe(autoEnabledConfig);
165173});
166174167175it("returns a partial snapshot when a channel probe exceeds the status budget", async () => {
@@ -192,21 +200,12 @@ describe("channelsHandlers channels.status", () => {
192200await vi.advanceTimersByTimeAsync(1000);
193201await run;
194202195-expect(mocks.buildChannelAccountSnapshot).toHaveBeenCalledWith(
196-expect.objectContaining({
197-probe: expect.objectContaining({
198-timedOut: true,
199-}),
200-}),
201-);
202-expect(respond).toHaveBeenCalledWith(
203-true,
204-expect.objectContaining({
205-partial: true,
206-warnings: [expect.stringContaining("whatsapp:default probe timed out after 1000ms")],
207-}),
208-undefined,
209-);
203+const snapshotArgs = requireRecord(requireFirstCallArg(mocks.buildChannelAccountSnapshot));
204+const probe = requireRecord(snapshotArgs.probe);
205+expect(probe.timedOut).toBe(true);
206+const payload = requireRespondPayload(respond);
207+expect(payload.partial).toBe(true);
208+expect(payload.warnings).toEqual(["whatsapp:default probe timed out after 1000ms"]);
210209} finally {
211210vi.useRealTimers();
212211}
@@ -252,19 +251,11 @@ describe("channelsHandlers channels.status", () => {
252251),
253252);
254253255-expect(respond).toHaveBeenCalledWith(
256-true,
257-expect.objectContaining({
258- eventLoop,
259-channelAccounts: {
260-whatsapp: [
261-expect.objectContaining({
262-healthState: "stale-socket",
263-}),
264-],
265-},
266-}),
267-undefined,
268-);
254+const payload = requireRespondPayload(respond);
255+expect(payload.eventLoop).toBe(eventLoop);
256+const channelAccounts = requireRecord(payload.channelAccounts);
257+expect(Array.isArray(channelAccounts.whatsapp)).toBe(true);
258+const [whatsappAccount] = channelAccounts.whatsapp as unknown[];
259+expect(requireRecord(whatsappAccount).healthState).toBe("stale-socket");
269260});
270261});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。