


























@@ -55,11 +55,23 @@ function recordField(value: unknown, field: string): Record<string, unknown> {
5555return value as Record<string, unknown>;
5656}
575758+function firstMockCall(mock: { mock: { calls: unknown[][] } }, label: string): unknown[] {
59+const [call] = mock.mock.calls;
60+if (!call) {
61+throw new Error(`expected ${label} call`);
62+}
63+return call;
64+}
65+66+function firstMockArg(mock: { mock: { calls: unknown[][] } }, label: string, index: number) {
67+return firstMockCall(mock, label)[index];
68+}
69+5870function objectArgAt(
5971mock: { mock: { calls: unknown[][] } },
6072index: number,
6173): Record<string, unknown> {
62-const value = mock.mock.calls[0]?.[index];
74+const value = firstMockArg(mock, "mock", index);
6375if (value === undefined || value === null || typeof value !== "object" || Array.isArray(value)) {
6476throw new Error(`expected call argument ${index} to be an object`);
6577}
@@ -119,8 +131,8 @@ describe("deliverDiscordReply", () => {
119131120132const deps = params.deps!;
121133await deps.discord("channel:101", "probe", { verbose: false });
122-expect(sendMessageDiscordMock.mock.calls[0]?.[0]).toBe("channel:101");
123-expect(sendMessageDiscordMock.mock.calls[0]?.[1]).toBe("probe");
134+expect(firstMockArg(sendMessageDiscordMock, "sendMessageDiscord", 0)).toBe("channel:101");
135+expect(firstMockArg(sendMessageDiscordMock, "sendMessageDiscord", 1)).toBe("probe");
124136const sendOptions = objectArgAt(sendMessageDiscordMock, 2);
125137expect(sendOptions.cfg).toBe(params.cfg);
126138expect(sendOptions.token).toBe("token");
@@ -377,8 +389,12 @@ describe("deliverDiscordReply", () => {
377389replyTo: "reply-1",
378390});
379391380-expect(sendVoiceMessageDiscordMock.mock.calls[0]?.[0]).toBe("channel:123");
381-expect(sendVoiceMessageDiscordMock.mock.calls[0]?.[1]).toBe("https://example.com/voice.ogg");
392+expect(firstMockArg(sendVoiceMessageDiscordMock, "sendVoiceMessageDiscord", 0)).toBe(
393+"channel:123",
394+);
395+expect(firstMockArg(sendVoiceMessageDiscordMock, "sendVoiceMessageDiscord", 1)).toBe(
396+"https://example.com/voice.ogg",
397+);
382398const voiceOptions = objectArgAt(sendVoiceMessageDiscordMock, 2);
383399expect(voiceOptions.cfg).toBe(cfg);
384400expect(voiceOptions.token).toBe("token");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。