docs: detallar PRs necesarios para Lote 6 DB Locator

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
main
brobert 1 month ago
parent f7b8b1449f
commit 02331790df

@ -306,12 +306,66 @@ Cada lote incluye objetivo, cambios, métricas y comprobaciones. Mantener tests
- Objetivo:
- Simplificar inyección de DB en runtime y tests.
- Cambios:
- Crear un “dbLocator” (getDb/setDb) central y migrar servicios a usarlo progresivamente, manteniendo compatibilidad con propiedades estáticas mientras dura la transición.
- Unificar `resolveDbAbsolutePath` entre core y web (una sola fuente).
- Crear un “dbLocator” (getDb/setDb/withDb) central y migrar servicios a usarlo progresivamente, manteniendo compatibilidad con propiedades estáticas mientras dura la transición.
- Unificar `resolveDbAbsolutePath` entre core y web (una sola fuente, con reexport en web para no romper imports).
- Métricas:
- Sin cambios de comportamiento; tests de servicios verdes.
- PRs propuestos y archivos a tocar:
PR 6.0 — Locator mínimo (infraestructura, sin usos en servicios)
- Nuevos archivos:
- src/db/locator.ts — export { setDb, getDb, withDb }.
- tests/unit/db/locator.test.ts — pruebas básicas del locator.
- Cambios en docs:
- Este documento (apartado de Lote 6).
PR 6.1 — Conexión en bootstrap (setDb al arrancar)
- Archivos a modificar:
- src/http/bootstrap.ts — importar setDb desde src/db/locator y llamarlo en el arranque (cuando se abra la DB).
- src/server.ts — si es quien abre la DB, llamar setDb(db) justo después de crearla (o delegar en bootstrap).
- Servicios: sin cambios (compatibilidad total con dbInstance estático).
PR 6.2 — Ruta única de DB (centralizar resolveDbAbsolutePath)
- Nuevos archivos:
- src/env/db-path.ts — export function resolveDbAbsolutePath(filename = 'tasks.db'): string.
- Archivos a modificar:
- apps/web/src/lib/server/env.ts — reexportar desde src/env/db-path.ts para mantener compatibilidad (sin cambios de API pública).
- src/server.ts o src/http/bootstrap.ts — actualizar imports a src/env/db-path.
- Comprobaciones esperadas:
- bunx tsc -p tsconfig.core.json --noEmit
- bun test --coverage
PR 6.3 — Adopción piloto con fallback (2 servicios)
- Archivos a modificar:
- src/services/response-queue.ts — usar (ResponseQueue as any).dbInstance ?? getDb().
- src/tasks/service.ts — usar (TaskService as any).dbInstance ?? getDb().
- Tests a ajustar (si aplica):
- tests/unit/services/response-queue.test.ts — asegurar setDb(memdb) en beforeAll cuando no se inyecte dbInstance.
- tests/unit/tasks/*.test.ts — idem.
- Comprobaciones esperadas:
- bunx tsc -p tsconfig.core.json --noEmit
- bun test --coverage
PR 6.4 — Adopción progresiva (resto de servicios principales)
- Archivos a modificar (por tandas pequeñas):
- src/services/group-sync/*.ts (api.ts, repo.ts, cache.ts, reconcile.ts) — fallback a getDb().
- src/services/command.ts, src/services/reminders.ts, src/services/maintenance.ts, src/services/admin.ts, src/services/contacts.ts, src/services/webhook-manager.ts — fallback a getDb().
- Tests a ajustar según servicio:
- tests/unit/services/**/*.test.ts — añadir setDb(memdb) donde no se use dbInstance explícita.
- Comprobaciones esperadas:
- bunx tsc -p tsconfig.core.json --noEmit
- bun test --coverage
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
- Objetivo:

Loading…
Cancel
Save