Testing
Configuración
| Archivo | Descripción |
|---|---|
test/jest-e2e.json | Config Jest para tests E2E (ts-jest, testRegex *.e2e-spec.ts) |
scripts/test-runner.js | Runner personalizado: carga .env y ejecuta Jest solo si TESTING=true |
src/bootstrap/run-tests.ts | Invocado desde main.ts para correr tests al arrancar |
Tipos de tests
Unitarios — *.spec.ts
Cada módulo tiene tests unitarios para servicios y controladores:
services/user.service.spec.ts
controllers/user.controller.spec.ts
Usan mocks de repositorios y dependencias externas. Corren con:
npm run test
Integración — *.integration.spec.ts
Solo el módulo Ticket tiene tests de integración:
services/ticket.service.integration.spec.ts
Conecta a MongoDB real. Requiere TESTING=true en .env.
E2E — test/app.e2e-spec.ts
Tests end-to-end del servidor completo. Actualmente solo verifica que el servidor levante y retorne Hello World! en la ruta raíz.
npm run test:e2e
Correr tests
# Todos los unitarios
npm run test
# Con watch
npm run test:watch
# Cobertura
npm run test:cov
# E2E
npm run test:e2e
Modo TESTING
Si TESTING=true en .env, al arrancar el servidor:
run-tests.tsejecuta toda la suite con Jest- Si algún test falla, el proceso termina (exit 1)
- Si todos pasan, el servidor continúa levantando
Útil en CI/CD para validar antes de desplegar.
Core tests
Además de los módulos, hay tests en el core:
src/app/core/guards/api-key.guard.spec.ts— tests delApiKeyGuardsrc/bootstrap/cors.spec.ts— tests de la configuración CORS