From 5c68deef76eebac0d408c731bd422d6d7fa1dabc Mon Sep 17 00:00:00 2001 From: gavrielc Date: Fri, 13 Feb 2026 23:08:34 +0200 Subject: [PATCH] fix: repair WhatsApp channel tests (missing Browsers mock and async flush) Added missing Browsers mock to the Baileys vi.mock and made triggerMessages async to flush microtasks before assertions. Co-Authored-By: Claude Opus 4.6 --- src/channels/whatsapp.test.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/channels/whatsapp.test.ts b/src/channels/whatsapp.test.ts index de0674b..bacba46 100644 --- a/src/channels/whatsapp.test.ts +++ b/src/channels/whatsapp.test.ts @@ -72,6 +72,7 @@ let fakeSocket: ReturnType; vi.mock('@whiskeysockets/baileys', () => { return { default: vi.fn(() => fakeSocket), + Browsers: { macOS: vi.fn(() => ['macOS', 'Chrome', '']) }, DisconnectReason: { loggedOut: 401, badSession: 500, @@ -126,8 +127,10 @@ function triggerDisconnect(statusCode: number) { }); } -function triggerMessages(messages: unknown[]) { +async function triggerMessages(messages: unknown[]) { fakeSocket._ev.emit('messages.upsert', { messages }); + // Flush microtasks so the async messages.upsert handler completes + await new Promise((r) => setTimeout(r, 0)); } // --- Tests --- @@ -297,7 +300,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-1', @@ -332,7 +335,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-2', @@ -359,7 +362,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-3', @@ -381,7 +384,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-4', @@ -402,7 +405,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-5', @@ -430,7 +433,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-6', @@ -458,7 +461,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-7', @@ -486,7 +489,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-8', @@ -515,7 +518,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-9', @@ -556,7 +559,7 @@ describe('WhatsAppChannel', () => { // The socket has lid '9876543210:1@lid' → phone '1234567890@s.whatsapp.net' // Send a message from the LID - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-lid', @@ -582,7 +585,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-normal', @@ -608,7 +611,7 @@ describe('WhatsAppChannel', () => { await connectChannel(channel); - triggerMessages([ + await triggerMessages([ { key: { id: 'msg-unknown-lid',