From d7390db8d6d80b41b00788c27f7a887e73e225f3 Mon Sep 17 00:00:00 2001 From: "borja (aider)" Date: Thu, 27 Mar 2025 00:08:01 +0100 Subject: [PATCH] fix: reset mocks between tests and improve message validation --- src/server.ts | 8 +++++--- tests/unit/server.test.ts | 8 ++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server.ts b/src/server.ts index 61e58e3..308ddc8 100644 --- a/src/server.ts +++ b/src/server.ts @@ -53,11 +53,13 @@ export class WebhookServer { private static async handleMessageUpsert(data: any) { // Basic message validation - if (!data?.key?.remoteJid || !data.message) return; + if (!data?.key?.remoteJid || !data.message || !data.message.conversation) return; - // Forward to command service if applicable + // Forward to command service only if: + // 1. It's a text message (has conversation field) + // 2. Starts with /tarea command const messageText = data.message.conversation; - if (messageText?.startsWith('/tarea')) { + if (typeof messageText === 'string' && messageText.trim().startsWith('/tarea')) { const responses = await CommandService.handle({ sender: data.key.participant, groupId: data.key.remoteJid, diff --git a/tests/unit/server.test.ts b/tests/unit/server.test.ts index f2a3d34..fb4264d 100644 --- a/tests/unit/server.test.ts +++ b/tests/unit/server.test.ts @@ -3,8 +3,12 @@ import { WebhookServer } from '../../src/server'; import { ResponseQueue } from '../../src/services/response-queue'; // Mock the ResponseQueue -const mockAdd = mock(() => Promise.resolve()); -ResponseQueue.add = mockAdd; +let mockAdd: any; + +beforeEach(() => { + mockAdd = mock(() => Promise.resolve()); + ResponseQueue.add = mockAdd; +}); describe('WebhookServer', () => { const envBackup = process.env;