You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.2 KiB
TypeScript

import { describe, test, expect, mock } from 'bun:test';
import { CommandService } from '../../../src/services/command';
describe('CommandService', () => {
const testContext = {
sender: '1234567890@s.whatsapp.net',
groupId: 'group-id@g.us',
message: '/tarea nueva Test task',
mentions: []
};
test('should ignore non-tarea commands', async () => {
const responses = await CommandService.handle({
...testContext,
message: '/othercommand'
});
expect(responses).toEqual([]);
});
test('should handle tarea commands', async () => {
const responses = await CommandService.handle(testContext);
expect(responses.length).toBe(1);
expect(responses[0].recipient).toBe(testContext.sender);
expect(responses[0].message).toInclude('Command received');
});
test('should return error response on failure', async () => {
const originalProcess = CommandService.processTareaCommand;
CommandService.processTareaCommand = mock(() => {
throw new Error('Test error');
});
const responses = await CommandService.handle(testContext);
expect(responses[0].message).toInclude('Error processing');
CommandService.processTareaCommand = originalProcess;
});
});