Compare commits

..

No commits in common. '138eaa72381046a2d0b786633f8af7363854ecfb' and 'ea0e492c709c752767ee12d8fbead50ce1fbfba9' have entirely different histories.

@ -94,8 +94,6 @@ Resultados esperados después del refactor: disminución drástica de duplicados
- Lote 6.0-6.2 completados: DB Locator mínimo, conexión en bootstrap con setDb y ruta única de DB (centralización y reexport en web); sin cambios funcionales; tests y typecheck limpios; commits: 9222242, 6196dba, 2669d42.
- Lote 6.3 completado: adopción piloto con fallback en ResponseQueue y TaskService; añadido smoke test de fallback (tests/unit/locator.fallback.test.ts); tests y typecheck limpios; commit relevante: 77ad9d7.
- Lote 6.4 completado: adopción progresiva de servicios al locator (fallback parámetro → .dbInstance → getDb()) en CommandService, RemindersService, MaintenanceService, AdminService y fachada de GroupSync; tests y typecheck limpios; commits: cd83455, f786ba8.
- Lote 6.5 completado: limpieza de .dbInstance, añadido resetDb/clearDb en locator, migración de tests al locator; nota: ~8 tests frágiles en paralelo; en CI ejecutar la suite en un solo worker.
- Estado: Lote 6 completado.
## Estado actual (2025-11-10)
@ -108,7 +106,7 @@ Resultados esperados después del refactor: disminución drástica de duplicados
- Lote 4 — ICS central y rutas homogéneas: Completado.
- Lote 5 — Svelte: dividir componentes grandes: Completado.
- Lote 5.5 — Refactor de servicios grandes (god classes): Completado.
- Lote 6 — DB Locator / DI ligera: Completado (PRs 6.06.5).
- Lote 6 — DB Locator / DI ligera: En curso (PRs 6.0, 6.1, 6.2, 6.3 y 6.4 completados).
- Lote 7 — Cobertura en módulos flojos: Pendiente.
## Fase 2 — Plan de refactor por lotes (PRs pequeñas y seguras)
@ -365,11 +363,11 @@ Cada lote incluye objetivo, cambios, métricas y comprobaciones. Mantener tests
- bunx tsc -p tsconfig.core.json --noEmit
- bun test --coverage
PR 6.5 — Limpieza final — Completado
- Hecho:
- Eliminadas propiedades estáticas dbInstance de servicios migrados a locator.
- Añadidos resetDb/clearDb en src/db/locator.ts para tests.
- Migrados tests a setDb(...) y resetDb()/clearDb(); se observa flakiness en ejecución paralela en ~8 tests. Recomendación: ejecutar la suite en un solo worker en CI.
PR 6.5 — Limpieza opcional (cuando no queden usos de .dbInstance)
- Archivos a modificar:
- Eliminar propiedades estáticas dbInstance de servicios ya migrados.
- Actualizar tests que aún dependan de ellas.
- Nota: no es obligatorio para completar el lote; puede posponerse a una fase de limpieza.
### Lote 7 — Cobertura en módulos flojos

@ -2,7 +2,6 @@ import Database from 'bun:sqlite';
import { initializeDatabase, ensureUserExists } from '../../../src/db';
import { AdminService } from '../../../src/services/admin';
import { TaskService } from '../../../src/tasks/service';
import { setDb, resetDb } from '../../../src/db/locator';
describe('AdminService - /admin ver todos', () => {
let memdb: Database;
@ -16,7 +15,6 @@ describe('AdminService - /admin ver todos', () => {
memdb = new Database(':memory:');
initializeDatabase(memdb);
setDb(memdb);
(AdminService as any).dbInstance = memdb;
(TaskService as any).dbInstance = memdb;
@ -38,7 +36,6 @@ describe('AdminService - /admin ver todos', () => {
});
afterEach(() => {
resetDb();
try { memdb.close(); } catch {}
});

@ -1,22 +1,7 @@
import { describe, it, expect, beforeAll, afterAll } from 'bun:test';
import { Database } from 'bun:sqlite';
import { initializeDatabase } from '../../../src/db';
import { setDb, resetDb } from '../../../src/db/locator';
import { describe, it, expect } from 'bun:test';
import { CommandService } from '../../../src/services/command';
describe('CommandService - /t ayuda y /t ayuda avanzada usando help centralizado', () => {
let memdb: Database;
beforeAll(() => {
memdb = new Database(':memory:');
initializeDatabase(memdb);
setDb(memdb);
});
afterAll(() => {
resetDb();
try { (memdb as any)?.close?.(); } catch {}
});
it('"/t ayuda" incluye quick help y CTA a ayuda avanzada', async () => {
const res = await CommandService.handle({
sender: '600000001',

Loading…
Cancel
Save