Saltar a contenido

Testing

Plan de tests y cómo ejecutarlos.

Comandos

Backend (Rust)

cd backend && cargo test

Tests unitarios en handlers, repos, activity_log, error, etc.

Frontend (Angular/Jasmine)

cd frontend && npm run test

Para CI (sin interfaz gráfica):

ng test --no-watch --browsers=ChromeHeadless

Para cobertura:

ng test --no-watch --code-coverage

E2E (Playwright)

Reporte HTML (tras ejecutar tests): https://playwright.gekkocheckin.mywire.org

Local (app ya corriendo en http://localhost:8100):

cd e2e && npm install && npx playwright install chromium && npm run test

Docker (levanta app + ejecuta tests):

cd docker && docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit

Docker (solo tests, app ya desplegada):

cd docker && docker compose -f docker-compose.e2e-only.yml run --rm e2e

Application/docker (app ya desplegada en LXC, con reporte en playwright.gekkocheckin.mywire.org):

cd application/docker
docker compose -f docker-compose.yml -f docker-compose.lxc.yml --profile gekkocheckin --profile playwright-run run --rm gk-e2e

Con captura de vídeo (E2E_CAPTURE_ALL=1 graba cada test):

cd application/docker
E2E_CAPTURE_ALL=1 docker compose run --rm gk-e2e

Variables para login en E2E: E2E_LOGIN_EMAIL, E2E_LOGIN_PASSWORD, E2E_PIN.

Plan de oleadas

Ver docs/testing/TESTING_PLAN.md para el plan completo (oleadas 1-4) y el estado de cobertura.

Convención data-testid

En frontend usar data-testid="gk-<componente>-<elemento>" en botones/inputs críticos para E2E. Ver docs/rules/frontend/testing.md.