[debt] Lint, Prettier, artefactos compilados en git y tests #7

Open
opened 2026-10-02 17:36:21 +00:00 by Carlos · 0 comments
Member

Qué es la deuda

  • npm run lint en apps/api reporta 1,757 errores: 1,695 vienen del src/prisma/contract.d.ts generado, que no está ignorado, y 62 son de Prettier en src/ (archivos sin formatear como operating-day.* y cash-*).
  • apps/api/eslint.config.mjs declara sourceType: 'commonjs', pero el paquete es "type": "module".
  • Hay artefactos compilados en git: apps/api/prisma.config.js(.map) y apps/api/migrations/**/migration.js(.map).
  • Los mensajes de error de los servicios genéricos están en inglés ("Product 3 not found") y los de negocio en español.
  • No hay tests en ninguna app.
  • DATABASE_URL! se usa sin validarse al arrancar (src/prisma/db.ts, prisma.config.ts) y no hay .env.example.
  • /api/health responde ok aunque la base de datos esté caída.
  • No hay logging de requests ni de errores.
  • apps/api/tsconfig.json activa opciones estrictas sueltas en lugar de strict: true.

Qué estamos pagando hoy

  • El lint no sirve como verificación: con 1,757 errores nadie lo corre y los errores reales se pierden.
  • Los artefactos compilados generan ruido en los diffs y pueden desincronizarse de su fuente .ts.
  • Sin tests, cada cambio en venta, inventario o caja se verifica a mano.
  • Un DATABASE_URL faltante falla tarde y con un error confuso; el health check no detecta una base de datos caída; sin logs es difícil diagnosticar errores.

Arreglo propuesto

  • Ignorar src/prisma/contract.d.ts en ESLint
  • Correr eslint --fix una vez
  • Corregir sourceType a module
  • Sacar los artefactos .js / .js.map de git y agregarlos a .gitignore
  • Unificar el idioma de los mensajes de error
  • Configurar tests (al menos para servicios de venta, inventario y caja)
  • Validar variables de entorno al arrancar y agregar .env.example
  • Health check que consulte la base de datos
  • Logging de requests y errores
  • strict: true en apps/api/tsconfig.json

Techo de esta ronda

Lint limpio, .gitignore y la base de tests con los primeros casos. Fuera: cobertura completa y pipeline de CI.

Superficie

CI / infra

Módulos

CI / infra, API / backend

Esfuerzo

M — un PR, un día

Riesgo de no tocarlo

Bajo

### Qué es la deuda - `npm run lint` en `apps/api` reporta **1,757 errores**: 1,695 vienen del `src/prisma/contract.d.ts` generado, que no está ignorado, y 62 son de Prettier en `src/` (archivos sin formatear como `operating-day.*` y `cash-*`). - `apps/api/eslint.config.mjs` declara `sourceType: 'commonjs'`, pero el paquete es `"type": "module"`. - Hay artefactos compilados en git: `apps/api/prisma.config.js(.map)` y `apps/api/migrations/**/migration.js(.map)`. - Los mensajes de error de los servicios genéricos están en inglés (`"Product 3 not found"`) y los de negocio en español. - No hay tests en ninguna app. - `DATABASE_URL!` se usa sin validarse al arrancar (`src/prisma/db.ts`, `prisma.config.ts`) y no hay `.env.example`. - `/api/health` responde `ok` aunque la base de datos esté caída. - No hay logging de requests ni de errores. - `apps/api/tsconfig.json` activa opciones estrictas sueltas en lugar de `strict: true`. ### Qué estamos pagando hoy - El lint no sirve como verificación: con 1,757 errores nadie lo corre y los errores reales se pierden. - Los artefactos compilados generan ruido en los diffs y pueden desincronizarse de su fuente `.ts`. - Sin tests, cada cambio en venta, inventario o caja se verifica a mano. - Un `DATABASE_URL` faltante falla tarde y con un error confuso; el health check no detecta una base de datos caída; sin logs es difícil diagnosticar errores. ### Arreglo propuesto - [ ] Ignorar `src/prisma/contract.d.ts` en ESLint - [ ] Correr `eslint --fix` una vez - [ ] Corregir `sourceType` a `module` - [ ] Sacar los artefactos `.js` / `.js.map` de git y agregarlos a `.gitignore` - [ ] Unificar el idioma de los mensajes de error - [ ] Configurar tests (al menos para servicios de venta, inventario y caja) - [ ] Validar variables de entorno al arrancar y agregar `.env.example` - [ ] Health check que consulte la base de datos - [ ] Logging de requests y errores - [ ] `strict: true` en `apps/api/tsconfig.json` ### Techo de esta ronda Lint limpio, `.gitignore` y la base de tests con los primeros casos. Fuera: cobertura completa y pipeline de CI. ### Superficie CI / infra ### Módulos CI / infra, API / backend ### Esfuerzo M — un PR, un día ### Riesgo de no tocarlo Bajo
Carlos changed title from Lint, Prettier, artefactos compilados en git y tests to [debt] Lint, Prettier, artefactos compilados en git y tests 2026-10-02 17:43:00 +00:00
Carlos self-assigned this 2026-10-02 20:07:12 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RynextTechnologies/PDV#7