fix: add whatsapp reply context

This commit is contained in:
Peter Steinberger
2025-12-23 02:26:11 +01:00
parent ffe75f3e20
commit 6550e7d562
7 changed files with 145 additions and 7 deletions

View File

@@ -107,9 +107,11 @@ describe("web monitor inbox", () => {
"composing",
"999@s.whatsapp.net",
);
expect(sock.sendMessage).toHaveBeenCalledWith("999@s.whatsapp.net", {
text: "pong",
});
expect(sock.sendMessage).toHaveBeenCalledWith(
"999@s.whatsapp.net",
{ text: "pong" },
{ quoted: expect.objectContaining({ key: { id: "abc" } }) },
);
await listener.close();
});
@@ -151,6 +153,53 @@ describe("web monitor inbox", () => {
await listener.close();
});
it("captures reply context from quoted messages", async () => {
const onMessage = vi.fn(async (msg) => {
await msg.reply("pong");
});
const listener = await monitorWebInbox({ verbose: false, onMessage });
const sock = await createWaSocket();
const upsert = {
type: "notify",
messages: [
{
key: { id: "abc", fromMe: false, remoteJid: "999@s.whatsapp.net" },
message: {
extendedTextMessage: {
text: "reply",
contextInfo: {
stanzaId: "q1",
participant: "111@s.whatsapp.net",
quotedMessage: { conversation: "original" },
},
},
},
messageTimestamp: 1_700_000_000,
pushName: "Tester",
},
],
};
sock.ev.emit("messages.upsert", upsert);
await new Promise((resolve) => setImmediate(resolve));
expect(onMessage).toHaveBeenCalledWith(
expect.objectContaining({
replyToId: "q1",
replyToBody: "original",
replyToSender: "+111",
}),
);
expect(sock.sendMessage).toHaveBeenCalledWith(
"999@s.whatsapp.net",
{ text: "pong" },
{ quoted: expect.objectContaining({ key: { id: "abc" } }) },
);
await listener.close();
});
it("captures media path for image messages", async () => {
const onMessage = vi.fn();
const listener = await monitorWebInbox({ verbose: false, onMessage });