diff --git a/tests/unit/db/migrations.allowed-groups.test.ts b/tests/unit/db/migrations.allowed-groups.test.ts index e020f4c..d466325 100644 --- a/tests/unit/db/migrations.allowed-groups.test.ts +++ b/tests/unit/db/migrations.allowed-groups.test.ts @@ -18,11 +18,25 @@ describe('Migración v9 - allowed_groups', () => { const memdb = new Database(':memory:'); initializeDatabase(memdb); - expect(() => - memdb.exec(` - INSERT INTO allowed_groups (group_id, status, discovered_at, updated_at) - VALUES ('123@g.us', 'invalid-status', strftime('%Y-%m-%d %H:%M:%f','now'), strftime('%Y-%m-%d %H:%M:%f','now')); - `) - ).toThrow(); + // En bun:sqlite, exec() puede no lanzar en constraint violation. Validamos no persistencia. + memdb.exec(` + INSERT INTO allowed_groups (group_id, status, discovered_at, updated_at) + VALUES ('123@g.us', 'invalid-status', strftime('%Y-%m-%d %H:%M:%f','now'), strftime('%Y-%m-%d %H:%M:%f','now')); + `); + + const invalidCount = memdb + .query(`SELECT COUNT(*) AS c FROM allowed_groups WHERE group_id = '123@g.us'`) + .get() as any; + expect(Number(invalidCount?.c || 0)).toBe(0); + + // Inserción válida debe persistir + memdb.exec(` + INSERT INTO allowed_groups (group_id, status, discovered_at, updated_at) + VALUES ('ok@g.us', 'allowed', strftime('%Y-%m-%d %H:%M:%f','now'), strftime('%Y-%m-%d %H:%M:%f','now')); + `); + const validCount = memdb + .query(`SELECT COUNT(*) AS c FROM allowed_groups WHERE group_id = 'ok@g.us'`) + .get() as any; + expect(Number(validCount?.c || 0)).toBe(1); }); });