

























@@ -52,11 +52,11 @@ describe("createWebSendApi", () => {
5252}
53535454function requireSendContent(callIndex = 0): Record<string, unknown> {
55-return requireRecord(sendMessage.mock.calls[callIndex]?.[1], "sent message content");
55+return requireRecord(sendMessage.mock.calls.at(callIndex)?.[1], "sent message content");
5656}
57575858function requireSendOptions(callIndex = 0): Record<string, unknown> {
59-return requireRecord(sendMessage.mock.calls[callIndex]?.[2], "sent message options");
59+return requireRecord(sendMessage.mock.calls.at(callIndex)?.[2], "sent message options");
6060}
61616262function expectSendContentFields(callIndex: number, fields: Record<string, unknown>) {
@@ -73,7 +73,7 @@ describe("createWebSendApi", () => {
7373it("uses sendOptions fileName for outbound documents", async () => {
7474const payload = Buffer.from("pdf");
7575await api.sendMessage("+1555", "doc", payload, "application/pdf", { fileName: "invoice.pdf" });
76-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
76+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
7777expectSendContentFields(0, {
7878document: payload,
7979fileName: "invoice.pdf",
@@ -90,7 +90,7 @@ describe("createWebSendApi", () => {
9090it("falls back to default document filename when fileName is absent", async () => {
9191const payload = Buffer.from("pdf");
9292await api.sendMessage("+1555", "doc", payload, "application/pdf");
93-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
93+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
9494expectSendContentFields(0, {
9595document: payload,
9696fileName: "file",
@@ -143,7 +143,7 @@ describe("createWebSendApi", () => {
143143it("supports image media with caption", async () => {
144144const payload = Buffer.from("img");
145145await api.sendMessage("+1555", "cap", payload, "image/jpeg");
146-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
146+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
147147expectSendContentFields(0, {
148148image: payload,
149149caption: "cap",
@@ -166,7 +166,7 @@ describe("createWebSendApi", () => {
166166167167await api.sendMessage("120363000000000000@g.us", "cap @15551234567", payload, "image/jpeg");
168168169-expect(sendMessage.mock.calls[0]?.[0]).toBe("120363000000000000@g.us");
169+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("120363000000000000@g.us");
170170expectSendContentFields(0, {
171171image: payload,
172172caption: "cap @15551234567",
@@ -178,7 +178,7 @@ describe("createWebSendApi", () => {
178178it("supports audio as push-to-talk voice note", async () => {
179179const payload = Buffer.from("aud");
180180await api.sendMessage("+1555", "", payload, "audio/ogg", { accountId: "alt" });
181-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
181+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
182182expectSendContentFields(0, {
183183audio: payload,
184184ptt: true,
@@ -197,7 +197,7 @@ describe("createWebSendApi", () => {
197197.mockResolvedValueOnce({ key: { id: "voice-1" } })
198198.mockResolvedValueOnce({ key: { id: "voice-text-1" } });
199199const res = await api.sendMessage("+1555", "voice text", payload, "audio/ogg");
200-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
200+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
201201expectSendContentFields(0, {
202202audio: payload,
203203ptt: true,
@@ -220,7 +220,7 @@ describe("createWebSendApi", () => {
220220it("supports video media and gifPlayback option", async () => {
221221const payload = Buffer.from("vid");
222222await api.sendMessage("+1555", "cap", payload, "video/mp4", { gifPlayback: true });
223-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
223+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
224224expectSendContentFields(0, {
225225video: payload,
226226caption: "cap",
@@ -241,7 +241,7 @@ describe("createWebSendApi", () => {
241241options: ["a", "b"],
242242maxSelections: 2,
243243});
244-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
244+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
245245expect(requireSendContent().poll).toEqual({
246246name: "Q?",
247247values: ["a", "b"],
@@ -257,7 +257,7 @@ describe("createWebSendApi", () => {
257257258258it("sends reactions with participant JID normalization", async () => {
259259const res = await api.sendReaction("+1555", "msg-2", "👍", false, "+1999");
260-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
260+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
261261const react = requireRecord(requireSendContent().react, "reaction content");
262262expect(react.text).toBe("👍");
263263expectRecordFields(requireRecord(react.key, "reaction key"), {
@@ -288,7 +288,7 @@ describe("createWebSendApi", () => {
288288289289it("keeps direct-chat reactions without a participant key", async () => {
290290await api.sendReaction("+1555", "msg-2", "👍", false);
291-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
291+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
292292const react = requireRecord(requireSendContent().react, "reaction content");
293293expect(react.text).toBe("👍");
294294expectRecordFields(requireRecord(react.key, "reaction key"), {
@@ -301,7 +301,7 @@ describe("createWebSendApi", () => {
301301302302it("preserves LID participants in reaction keys", async () => {
303303await api.sendReaction("12345@g.us", "msg-2", "👍", false, "123@lid");
304-expect(sendMessage.mock.calls[0]?.[0]).toBe("12345@g.us");
304+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("12345@g.us");
305305const react = requireRecord(requireSendContent().react, "reaction content");
306306expect(react.text).toBe("👍");
307307expectRecordFields(requireRecord(react.key, "reaction key"), {
@@ -334,7 +334,7 @@ describe("createWebSendApi", () => {
334334335335await api.sendMessage("123", "hello", mediaBuffer, undefined);
336336337-expect(sendMessage.mock.calls[0]?.[0]).toBe("123@s.whatsapp.net");
337+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("123@s.whatsapp.net");
338338expectSendContentFields(0, {
339339document: mediaBuffer,
340340mimetype: "application/octet-stream",
@@ -358,8 +358,8 @@ describe("createWebSendApi", () => {
358358},
359359});
360360361-expect(sendMessage.mock.calls[0]?.[0]).toBe("1555@s.whatsapp.net");
362-expect(sendMessage.mock.calls[0]?.[1]).toEqual({ text: "hello" });
361+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("1555@s.whatsapp.net");
362+expect(sendMessage.mock.calls.at(0)?.[1]).toEqual({ text: "hello" });
363363const quoted = requireRecord(requireSendOptions().quoted, "quoted message");
364364expectRecordFields(requireRecord(quoted.key, "quoted key"), {
365365remoteJid: "277038292303944@lid",
@@ -420,8 +420,8 @@ describe("createWebSendApi LID resolution (issue #67378)", () => {
420420 authDir,
421421});
422422await api.sendPoll("+15555550000", { question: "Q?", options: ["a", "b"] });
423-expect(sendMessage.mock.calls[0]?.[0]).toBe("987654@lid");
424-const payload = requireRecord(sendMessage.mock.calls[0]?.[1], "send poll payload");
423+expect(sendMessage.mock.calls.at(0)?.[0]).toBe("987654@lid");
424+const payload = requireRecord(sendMessage.mock.calls.at(0)?.[1], "send poll payload");
425425expect("poll" in payload).toBe(true);
426426});
427427此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。