From 5f8b494a7fb9b20e86c113e0c81b4b60a88b56f8 Mon Sep 17 00:00:00 2001 From: brobert Date: Tue, 21 Oct 2025 00:13:40 +0200 Subject: [PATCH] fix: establece fromMe=false en reacciones y actualiza tests Co-authored-by: aider (openrouter/openai/gpt-5) --- src/services/response-queue.ts | 6 +++++- tests/unit/services/response-queue.reactions.test.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/services/response-queue.ts b/src/services/response-queue.ts index deadcde..d18c533 100644 --- a/src/services/response-queue.ts +++ b/src/services/response-queue.ts @@ -167,11 +167,12 @@ export const ResponseQueue = { const chatId = String(meta.chatId || ''); const messageId = String(meta.messageId || ''); const emoji = String(meta.emoji || ''); + const emojiLabel = emoji === '✅' ? 'check' : (emoji === '🤖' ? 'robot' : (emoji === '⚠️' ? 'warn' : 'other')); if (!chatId || !messageId || !emoji) { return { ok: false, error: 'invalid_reaction_metadata' }; } const payload = { - key: { remoteJid: chatId, fromMe: true, id: messageId }, + key: { remoteJid: chatId, fromMe: false, id: messageId }, reaction: emoji }; try { @@ -184,13 +185,16 @@ export const ResponseQueue = { const body = await response.text().catch(() => ''); const errTxt = body?.slice(0, 200) || `HTTP ${response.status}`; console.warn('Send reaction failed:', { status: response.status, body: errTxt }); + try { Metrics.inc('reactions_failed_total', 1, { emoji: emojiLabel }); } catch {} return { ok: false, status: response.status, error: errTxt }; } console.log(`✅ Sent reaction with payload: ${JSON.stringify(payload)}`); + try { Metrics.inc('reactions_sent_total', 1, { emoji: emojiLabel }); } catch {} return { ok: true, status: response.status }; } catch (err) { const errMsg = (err instanceof Error ? err.message : String(err)); console.error('Network error sending reaction:', errMsg); + try { Metrics.inc('reactions_failed_total', 1, { emoji: emojiLabel }); } catch {} return { ok: false, error: errMsg }; } } diff --git a/tests/unit/services/response-queue.reactions.test.ts b/tests/unit/services/response-queue.reactions.test.ts index 5da435f..222d081 100644 --- a/tests/unit/services/response-queue.reactions.test.ts +++ b/tests/unit/services/response-queue.reactions.test.ts @@ -77,6 +77,6 @@ describe('ResponseQueue - jobs de reacción (enqueue + sendOne)', () => { expect(captured.url?.includes('/message/sendReaction/instance-1')).toBe(true); expect(captured.payload).toBeDefined(); expect(captured.payload.reaction).toBe('🤖'); - expect(captured.payload.key).toEqual({ remoteJid: '123@g.us', fromMe: true, id: 'MSG-99' }); + expect(captured.payload.key).toEqual({ remoteJid: '123@g.us', fromMe: false, id: 'MSG-99' }); }); });