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.

45 lines
1.3 KiB
TypeScript

import { describe, it, expect, beforeEach, afterEach } from 'bun:test';
import { makeMemDb } from '../../helpers/db';
import { CommandService } from '../../../src/services/command';
import { AllowedGroups } from '../../../src/services/allowed-groups';
describe('CommandService - gating en modo enforce', () => {
const envBackup = process.env;
beforeEach(() => {
process.env = { ...envBackup, NODE_ENV: 'test', GROUP_GATING_MODE: 'enforce' };
const memdb = makeMemDb();
(CommandService as any).dbInstance = memdb;
(AllowedGroups as any).dbInstance = memdb;
});
afterEach(() => {
process.env = envBackup;
});
it('bloquea comandos en grupo no permitido (desconocido)', async () => {
const res = await CommandService.handle({
sender: '34600123456',
groupId: 'g1@g.us',
message: '/t ayuda',
mentions: []
});
expect(Array.isArray(res)).toBe(true);
expect(res.length).toBe(0);
});
it('permite comandos en grupo permitido', async () => {
AllowedGroups.setStatus('g2@g.us', 'allowed', 'G2');
const res = await CommandService.handle({
sender: '34600123456',
groupId: 'g2@g.us',
message: '/t ayuda',
mentions: []
});
expect(res.length).toBeGreaterThan(0);
expect(res[0].recipient).toBe('34600123456');
});
});