test: añadir tests para alias /t, DM y cola de respuestas

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
pull/1/head
borja 2 months ago
parent 714c7a6c4e
commit fa08689ee0

@ -702,5 +702,45 @@ describe('WebhookServer', () => {
expect(response.status).toBe(200);
expect(SimulatedResponseQueue.getQueue().length).toBeGreaterThan(0);
});
test('should accept /t alias and process command', async () => {
const payload = {
event: 'messages.upsert',
instance: 'test-instance',
data: {
key: {
remoteJid: 'group-id@g.us',
participant: '1234567890@s.whatsapp.net'
},
message: { conversation: '/t n Tarea alias hoy' }
}
};
const request = createTestRequest(payload);
const response = await WebhookServer.handleRequest(request);
expect(response.status).toBe(200);
expect(SimulatedResponseQueue.getQueue().length).toBeGreaterThan(0);
});
test('should never send responses to the group (DM only policy)', async () => {
const payload = {
event: 'messages.upsert',
instance: 'test-instance',
data: {
key: {
remoteJid: 'group-id@g.us',
participant: '1234567890@s.whatsapp.net'
},
message: { conversation: '/t n Probar silencio grupo mañana' }
}
};
const request = createTestRequest(payload);
await WebhookServer.handleRequest(request);
const out = SimulatedResponseQueue.getQueue();
expect(out.length).toBeGreaterThan(0);
for (const r of out) {
expect(r.recipient.endsWith('@g.us')).toBe(false);
}
});
});
});

@ -31,15 +31,20 @@ describe('CommandService', () => {
expect(responses).toEqual([]);
});
test('should handle tarea nueva: crea y responde con id y descripción', async () => {
test('acepta alias /t y responde con formato compacto', async () => {
const responses = await CommandService.handle({
...testContextBase,
message: '/tarea nueva Test task'
message: '/t n Test task'
});
expect(responses.length).toBe(1);
expect(responses[0].recipient).toBe('1234567890');
expect(responses[0].message).toMatch(/^✅ Tarea \d+ creada: "Test task"/);
// Debe empezar con "✅ <id> "
expect(responses[0].message).toMatch(/^✅ \d+ /);
// Debe contener la descripción en negrita compacta
expect(responses[0].message).toContain('*Test task*');
// No debe usar el texto antiguo "Tarea <id> creada"
expect(responses[0].message).not.toMatch(/Tarea \d+ creada/);
});
test('should return error response on failure', async () => {

Loading…
Cancel
Save