


























@@ -38,6 +38,12 @@ function createSocketRef(): NonNullable<InboxMonitorOptions["socketRef"]> {
3838return { current: null };
3939}
404041+function inboundMessage(onMessage: ReturnType<typeof vi.fn>, index = 0): Record<string, unknown> {
42+const msg = onMessage.mock.calls[index]?.[0];
43+expect(msg).toBeDefined();
44+return msg as Record<string, unknown>;
45+}
46+4147async function primeInboundReplyHandle(params: {
4248onMessage: ReturnType<typeof vi.fn>;
4349socketRef: NonNullable<InboxMonitorOptions["socketRef"]>;
@@ -115,30 +121,26 @@ describe("web monitor inbox", () => {
115121sock.ev.emit("messages.upsert", upsert);
116122await waitForMessageCalls(onMessage, 1);
117123118-expect(onMessage).toHaveBeenCalledWith(
119-expect.objectContaining({
120-replyToId: "q1",
121-replyToBody: "original",
122-replyToSender: "+111",
123-sender: expect.objectContaining({
124-e164: "+999",
125-name: "Tester",
126-}),
127-replyTo: expect.objectContaining({
128-id: "q1",
129-body: "original",
130-sender: expect.objectContaining({
131-jid: "111@s.whatsapp.net",
132-e164: "+111",
133-label: "+111",
134-}),
135-}),
136-self: expect.objectContaining({
137-jid: "123@s.whatsapp.net",
138-e164: "+123",
139-}),
140-}),
141-);
124+const inbound = inboundMessage(onMessage);
125+expect(inbound.replyToId).toBe("q1");
126+expect(inbound.replyToBody).toBe("original");
127+expect(inbound.replyToSender).toBe("+111");
128+const sender = inbound.sender as { e164?: string; name?: string };
129+expect(sender.e164).toBe("+999");
130+expect(sender.name).toBe("Tester");
131+const replyTo = inbound.replyTo as {
132+body?: string;
133+id?: string;
134+sender?: { e164?: string; jid?: string; label?: string };
135+};
136+expect(replyTo.id).toBe("q1");
137+expect(replyTo.body).toBe("original");
138+expect(replyTo.sender?.jid).toBe("111@s.whatsapp.net");
139+expect(replyTo.sender?.e164).toBe("+111");
140+expect(replyTo.sender?.label).toBe("+111");
141+const self = inbound.self as { e164?: string; jid?: string };
142+expect(self.jid).toBe("123@s.whatsapp.net");
143+expect(self.e164).toBe("+123");
142144expect(sock.sendMessage).toHaveBeenCalledWith("999@s.whatsapp.net", {
143145text: "pong",
144146});
@@ -166,9 +168,10 @@ describe("web monitor inbox", () => {
166168sock.ev.emit("messages.upsert", upsert);
167169await waitForMessageCalls(onMessage, 1);
168170169-expect(onMessage).toHaveBeenCalledWith(
170-expect.objectContaining({ body: "ping", from: "+999", to: "+123" }),
171-);
171+const inbound = inboundMessage(onMessage);
172+expect(inbound.body).toBe("ping");
173+expect(inbound.from).toBe("+999");
174+expect(inbound.to).toBe("+123");
172175expect(sock.readMessages).toHaveBeenCalledWith([
173176{
174177remoteJid: "999@s.whatsapp.net",
@@ -258,15 +261,12 @@ describe("web monitor inbox", () => {
258261);
259262260263await waitForMessageCalls(onMessage, 1);
261-expect(onMessage).toHaveBeenCalledWith(
262-expect.objectContaining({
263-body: "ping",
264-from: "123@g.us",
265-groupSubject: "Recovered Group",
266-senderE164: "+444",
267-chatType: "group",
268-}),
269-);
264+const inbound = inboundMessage(onMessage);
265+expect(inbound.body).toBe("ping");
266+expect(inbound.from).toBe("123@g.us");
267+expect(inbound.groupSubject).toBe("Recovered Group");
268+expect(inbound.senderE164).toBe("+444");
269+expect(inbound.chatType).toBe("group");
270270expect(onMessage.mock.calls[0]?.[0].groupParticipants).toBeUndefined();
271271272272await second.listener.close();
@@ -453,11 +453,7 @@ describe("web monitor inbox", () => {
453453await listener.close();
454454await vi.advanceTimersByTimeAsync(50);
455455await waitForMessageCalls(onMessage, 1);
456-expect(onMessage).toHaveBeenCalledWith(
457-expect.objectContaining({
458-body: "first\nsecond",
459-}),
460-);
456+expect(inboundMessage(onMessage).body).toBe("first\nsecond");
461457} finally {
462458vi.useRealTimers();
463459}
@@ -594,9 +590,10 @@ describe("web monitor inbox", () => {
594590await waitForMessageCalls(onMessage, 1);
595591596592expect(getPNForLID).toHaveBeenCalledWith("999@lid");
597-expect(onMessage).toHaveBeenCalledWith(
598-expect.objectContaining({ body: "ping", from: "+999", to: "+123" }),
599-);
593+const inbound = inboundMessage(onMessage);
594+expect(inbound.body).toBe("ping");
595+expect(inbound.from).toBe("+999");
596+expect(inbound.to).toBe("+123");
600597601598await listener.close();
602599});
@@ -623,9 +620,10 @@ describe("web monitor inbox", () => {
623620sock.ev.emit("messages.upsert", upsert);
624621await waitForMessageCalls(onMessage, 1);
625622626-expect(onMessage).toHaveBeenCalledWith(
627-expect.objectContaining({ body: "ping", from: "+1555", to: "+123" }),
628-);
623+const inbound = inboundMessage(onMessage);
624+expect(inbound.body).toBe("ping");
625+expect(inbound.from).toBe("+1555");
626+expect(inbound.to).toBe("+123");
629627expect(getPNForLID).not.toHaveBeenCalled();
630628631629await listener.close();
@@ -651,14 +649,11 @@ describe("web monitor inbox", () => {
651649await waitForMessageCalls(onMessage, 1);
652650653651expect(getPNForLID).toHaveBeenCalledWith("444@lid");
654-expect(onMessage).toHaveBeenCalledWith(
655-expect.objectContaining({
656-body: "ping",
657-from: "123@g.us",
658-senderE164: "+444",
659-chatType: "group",
660-}),
661-);
652+const inbound = inboundMessage(onMessage);
653+expect(inbound.body).toBe("ping");
654+expect(inbound.from).toBe("123@g.us");
655+expect(inbound.senderE164).toBe("+444");
656+expect(inbound.chatType).toBe("group");
662657663658await listener.close();
664659});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。