Skip to main content

Testing

Configuración

ArchivoDescripción
test/jest-e2e.jsonConfig Jest para tests E2E (ts-jest, testRegex *.e2e-spec.ts)
scripts/test-runner.jsRunner personalizado: carga .env y ejecuta Jest solo si TESTING=true
src/bootstrap/run-tests.tsInvocado 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:

  1. run-tests.ts ejecuta toda la suite con Jest
  2. Si algún test falla, el proceso termina (exit 1)
  3. 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 del ApiKeyGuard
  • src/bootstrap/cors.spec.ts — tests de la configuración CORS