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 <noreply@anthropic.com>
This commit is contained in:
gavrielc
2026-02-13 23:08:34 +02:00
parent ae474fd344
commit 5c68deef76

View File

@@ -72,6 +72,7 @@ let fakeSocket: ReturnType<typeof createFakeSocket>;
vi.mock('@whiskeysockets/baileys', () => { vi.mock('@whiskeysockets/baileys', () => {
return { return {
default: vi.fn(() => fakeSocket), default: vi.fn(() => fakeSocket),
Browsers: { macOS: vi.fn(() => ['macOS', 'Chrome', '']) },
DisconnectReason: { DisconnectReason: {
loggedOut: 401, loggedOut: 401,
badSession: 500, 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 }); fakeSocket._ev.emit('messages.upsert', { messages });
// Flush microtasks so the async messages.upsert handler completes
await new Promise((r) => setTimeout(r, 0));
} }
// --- Tests --- // --- Tests ---
@@ -297,7 +300,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-1', id: 'msg-1',
@@ -332,7 +335,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-2', id: 'msg-2',
@@ -359,7 +362,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-3', id: 'msg-3',
@@ -381,7 +384,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-4', id: 'msg-4',
@@ -402,7 +405,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-5', id: 'msg-5',
@@ -430,7 +433,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-6', id: 'msg-6',
@@ -458,7 +461,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-7', id: 'msg-7',
@@ -486,7 +489,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-8', id: 'msg-8',
@@ -515,7 +518,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-9', id: 'msg-9',
@@ -556,7 +559,7 @@ describe('WhatsAppChannel', () => {
// The socket has lid '9876543210:1@lid' → phone '1234567890@s.whatsapp.net' // The socket has lid '9876543210:1@lid' → phone '1234567890@s.whatsapp.net'
// Send a message from the LID // Send a message from the LID
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-lid', id: 'msg-lid',
@@ -582,7 +585,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-normal', id: 'msg-normal',
@@ -608,7 +611,7 @@ describe('WhatsAppChannel', () => {
await connectChannel(channel); await connectChannel(channel);
triggerMessages([ await triggerMessages([
{ {
key: { key: {
id: 'msg-unknown-lid', id: 'msg-unknown-lid',