Ejecutar los tests en local¶
Los tests de Didacta se ejecutan en local con scripts/test-local.sh, el runner autorizado antes de mergear. La CI de GitHub Actions valida typecheck, lint, ee-fence, gitleaks y license-check; las suites unit e integración corren en tu máquina.
Requisitos¶
- Docker Desktop (o un daemon Docker) corriendo.
pnpmen PATH con la versión del campopackageManagerdelpackage.jsonraíz.- Puertos 5433 y 6380 libres (Postgres y Redis efímeros de test).
Comandos¶
bash scripts/test-local.sh # full: pre-flight + build + unit + integración
bash scripts/test-local.sh unit # solo pre-flight + unit
bash scripts/test-local.sh integ # solo pre-flight + build + integración
También disponibles como scripts pnpm: pnpm test:local, pnpm test:local:unit, pnpm test:local:integ. En Windows, usa Git Bash (o scripts\test-local.cmd, que delega en él).
Qué hace el runner¶
- Pre-flight: comprueba Docker, puertos libres y que no queden contenedores
didacta-*-testde runs anteriores. - Genera el cliente Prisma y compila los packages internos que los tests importan (
@didacta/database,@didacta/core-kernel,@didacta/core-registry,@didacta/license-sdk). - Corre la suite unit (
pnpm test, Vitest vía turbo). - Levanta
docker-compose.test.yml(postgres-test en 5433, redis-test en 6380 — BD en tmpfs, Redis sin persistencia), corre la suite de integración y baja el compose siempre, incluso si Vitest falla.
Suites rápidas sin Docker¶
pnpm typecheck— typecheck de todo el monorepo.pnpm test— solo los tests unit (no necesitan infraestructura).
E2E (Playwright)¶
Los E2E de apps/e2e necesitan la API y la web corriendo (locales con pnpm dev, o el stack de docker-compose.alpha.yml). Ver apps/e2e/README.md en el repo.