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:
@@ -72,6 +72,7 @@ let fakeSocket: ReturnType<typeof createFakeSocket>;
|
||||
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',
|
||||
|
||||
Reference in New Issue
Block a user