test: cover MEDIA backticks and web media fallback logging

This commit is contained in:
Peter Steinberger
2025-11-25 06:04:41 +01:00
parent 8ea7f9b439
commit 9fbeb2ccd3
2 changed files with 69 additions and 0 deletions

View File

@@ -46,6 +46,7 @@ import {
sendMessageWeb,
waitForWaConnection,
} from "./provider-web.js";
import { monitorWebProvider } from "./index.js";
const baileys = (await import(
"@whiskeysockets/baileys"
@@ -209,6 +210,49 @@ describe("provider-web", () => {
await listener.close();
});
it("monitorWebProvider falls back to text when media send fails", async () => {
const sendMedia = vi.fn().mockRejectedValue(new Error("boom"));
const reply = vi.fn().mockResolvedValue(undefined);
const sendComposing = vi.fn();
const resolver = vi.fn().mockResolvedValue({
text: "hi",
mediaUrl: "https://example.com/img.png",
});
let capturedOnMessage: ((msg: any) => Promise<void>) | undefined;
const listenerFactory = async (opts: { onMessage: (msg: any) => Promise<void> }) => {
capturedOnMessage = opts.onMessage;
return { close: vi.fn() };
};
const fetchMock = vi
.spyOn(global as any, "fetch")
.mockResolvedValue({
ok: true,
body: true,
arrayBuffer: async () => new ArrayBuffer(1024),
headers: { get: () => "image/png" },
status: 200,
} as any);
await monitorWebProvider(false, listenerFactory as any, false, resolver);
expect(capturedOnMessage).toBeDefined();
await capturedOnMessage?.({
body: "hello",
from: "+1",
to: "+2",
id: "msg1",
sendComposing,
reply,
sendMedia,
});
expect(sendMedia).toHaveBeenCalled();
expect(reply).toHaveBeenCalledWith("hi");
fetchMock.mockRestore();
});
it("logWebSelfId prints cached E.164 when creds exist", () => {
const existsSpy = vi
.spyOn(fsSync, "existsSync")