en el medio del kilombo de la db

This commit is contained in:
markosbenitez
2026-06-28 01:36:45 -03:00
parent 6a09ce9ee5
commit 0fdee073a6
7 changed files with 396 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
# ETAPA E2E — Tests Playwright: verificación deploy Sprint 5
## Antes de tocar código, leé:
1. `CLAUDE.md`
2. `docs/estado/ESTADO_PROYECTO_26JUN2026.md` — estado general del proyecto
Confirmame el plan antes de implementar.
## Credenciales de test (usuario dedicado — nunca las de Marcos)
- URL: `https://economia-cuidado.inqualityhq.com`
- Email: `test-e2e@inquality.com.py`
- Password: `TestE2E2026!#Cuidado`
- Rol: `platform_admin`, org: `InQuality`
Estas credenciales van en `.env.test` en la raíz (agregar a `.gitignore` si no está).
**Nunca hardcodeadas en los specs.**
## Verificar Playwright antes de instalar nada
```bash
npx playwright --version 2>/dev/null && echo "instalado" || echo "no instalado"
ls ~/.cache/ms-playwright 2>/dev/null && echo "browsers presentes" || echo "browsers ausentes"
```
Reportar resultado antes de continuar. Si ya está instalado con browsers, agregar solo
`@playwright/test` como devDependency sin correr `npx playwright install`.
Si no está: `npx playwright install --with-deps chromium` (solo Chromium).
## Los 5 tests a implementar
**Archivo:** `tests/e2e/sprint5-verificacion.spec.ts`
### Test 1 — Login y redirect
- Abrir `/admin/responses` sin sesión
- Verificar redirect a `/login`
- El DOM de `/login` contiene el campo `email`, el campo `password`, y el botón de toggle
de contraseña (buscar `aria-label` que contenga "contraseña")
### Test 2 — Login funcional
- Hacer login con las credenciales de test en `/login`
- Verificar redirect a `/admin/responses`
- El DOM contiene `<select>` para filtro de survey (no links hardcodeados)
- El DOM contiene al menos una fila de respuesta (hay 50 sembradas)
### Test 3 — Vista detallada de respuesta
- Desde `/admin/responses`, hacer click en el primer link "Ver" disponible
- Verificar que la URL cambia a `/admin/responses/[uuid]`
- El DOM contiene al menos una sección (buscar texto que indique agrupación por sección)
- No hay error 404 ni texto "Respuesta no encontrada"
### Test 4 — Dashboard con datos
- Navegar a `/dashboard` (o la ruta del dashboard — verificar cuál es)
- Verificar que al menos un widget muestra un porcentaje (buscar `%` en el DOM)
- No aparece "Datos insuficientes" en todos los widgets (puede aparecer en algunos
segmentos con k<5, pero no en todos)
### Test 5 — Formulario público accesible sin auth
- Navegar a `/` o `/encuesta` (verificar ruta correcta del formulario)
- Verificar que NO redirige a `/login` (el formulario es público)
- El DOM contiene el wizard o la pantalla de consentimiento
## Decisiones ya tomadas
- Playwright en local apuntando a producción, no en CI (backlog)
- `playwright.config.ts` en raíz, `testDir: 'tests/e2e'`
- `.env.test` para credenciales, en `.gitignore`
- Si un test falla, reportar el error exacto y consultarme — no intentar workarounds
## Archivos autorizados
`playwright.config.ts`, `tests/e2e/sprint5-verificacion.spec.ts`, `.env.test`
(no se commitea), `package.json` (devDependency), `package-lock.json`.
Cualquier otro en `git diff --name-only HEAD` → revertir y reportar.
## DoD antes de reportar
```bash
npx playwright test tests/e2e/sprint5-verificacion.spec.ts --reporter=list
git log --name-only -1
git diff --name-only HEAD # solo archivos autorizados, sin .env.test
grep -r "TestE2E2026" . # debe dar vacío — contraseña no commiteada
```
## Qué reportar
- Resultado de checks de Playwright previos (versión, browsers)
- Resultado de cada test: pass/fail con mensaje exacto si falla
- Ruta real del dashboard y del formulario público (las que encontró en el código)
- `git log --name-only -1` y `git diff --name-only HEAD`
- Hallazgos no esperados
**No hacer deploy ni modificar nada en producción. No continuar sin mi OK si algo falla.**