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', () => {
|
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',
|
||||||
|
|||||||
Reference in New Issue
Block a user