# Checklist de entrega — InQ ROI > Claude Code ejecuta este checklist ANTES de reportar una etapa como completada. > El director ejecuta la sección "Validación visual" para el OK formal. --- ## Tier 1 — Automatizado (bloquea entrega si falla) Correr en este orden. Si cualquier comando falla, no entregar — corregir primero. ```bash npm run build # 0 errores TypeScript, bundle generado npm run lint # 0 errores ESLint npm run test # todos los tests Vitest verdes (reportar N/N) npx playwright test # todos los E2E verdes (reportar N/N) ``` Reportar en el mensaje de entrega: - Build: ✅ limpio / ❌ N errores - Lint: ✅ limpio / ❌ N warnings/errors - Tests unitarios: ✅ N/N verdes - Tests E2E: ✅ N/N verdes **Nota sobre E2E con auth:** los specs que requieren sesión usan `test.use({ storageState: 'tests/e2e/setup/auth-state.json' })`. Ese archivo lo genera el `globalSetup` (`tests/e2e/setup/auth-setup.ts`) automáticamente al correr `npx playwright test`, usando el usuario de test (`TEST_USER_EMAIL`/`TEST_USER_PASSWORD` en `.env.test`, gitignored). Si `.env.test` no existe, el setup avisa por consola y los specs con auth fallan — no es necesario ningún paso manual previo más allá de tener `.env.test` configurado una vez. --- ## Tier 2 — Deploy check (post-deploy en inq-roi.inqualityhq.com) Abrir DevTools → Network tab. Realizar estas acciones y verificar: | Acción | Verificar | |--------|-----------| | Cargar biblioteca (`/`) | Sin 500, sin 406 en `simulations` | | Abrir cualquier proceso en workspace | Sin 500, `activities` y `gateways` con 200 | | Abrir catálogo de recursos (`/recursos`) | Sin 500, tabla carga con datos | | Exportar PDF (cualquier proceso simulado) | Sin errores en consola, archivo descargado | --- ## Tier 3 — Validación visual (director) > Esta sección la completa el director. Claude Code NO puede aprobarla. ### Siempre verificar - [ ] Header muestra avatar del usuario logueado - [ ] Ningún texto dice "Process Cost Platform" (nombre viejo) - [ ] Marca "InQ" escrita correctamente (no INQ, no Inq) - [ ] Botones primarios en naranja `#F59845` ### Por área (verificar si la etapa tocó esa área) **Biblioteca** - [ ] Procesos cargan sin spinner infinito - [ ] "Actualizado por [nombre]" visible en tarjetas - [ ] Toggle Todos/Míos funciona **Workspace** - [ ] BPMN canvas renderiza el diagrama - [ ] ActivityPanel abre al hacer click en una actividad - [ ] ResourcesPanel muestra recursos usados en el proceso **Catálogo de recursos** - [ ] Tabla muestra recursos con badges de tipo coloreados - [ ] Búsqueda por nombre funciona - [ ] Filtro por tipo funciona - [ ] Crear/editar recurso guarda en Supabase y aparece en la lista - [ ] Recurso con costo `0.037` muestra `$0.037` (no `$0.04`) **Auth** - [ ] Login muestra selector de cuentas de Google - [ ] Logout redirige a `/login` - [ ] Sin sesión, cualquier ruta protegida redirige a `/login` **PDF** (si la etapa tocó PDF) - [ ] Footer dice "Powered by InQuality" - [ ] Sin caracteres rotos ni encodings incorrectos --- ## Tier 4 — Integridad de datos (si la etapa tocó schema o repos) Correr en Supabase Studio SQL Editor: ```sql -- Sin procesos huérfanos (sin owner) SELECT COUNT(*) FROM processes WHERE owner_id IS NULL; -- debe ser 0 -- Sin actividades huérfanas SELECT COUNT(*) FROM activities a LEFT JOIN processes p ON p.id = a.process_id WHERE p.id IS NULL; -- debe ser 0 -- Sin recursos con tipo inválido SELECT DISTINCT type FROM resources; -- debe mostrar solo: person, role, system, equipment, supply ``` --- ## Nota sobre regresiones de PDF Los tests E2E de PDFs (`etapa-4-pdfs.spec.ts` etc.) son la red de contención para regresiones de PDF. Si se tocó cualquier cosa de exportación o cálculos, correr específicamente: ```bash npx playwright test tests/e2e/export-pdf.spec.ts tests/e2e/export-roi.spec.ts ``` --- ## Setup del usuario de test E2E (referencia, una sola vez por entorno) 1. Supabase Studio → Authentication → Add user (email/password, NO Google OAuth) 2. SQL Editor: ```sql insert into public.users (id, name, platform_role) values ('', 'Nombre Test E2E', 'platform_admin'); ``` 3. Completar `.env.test` (gitignored, ver `.env.example`): ``` TEST_USER_EMAIL=... TEST_USER_PASSWORD=... ``` 4. `npx playwright test` genera `tests/e2e/setup/auth-state.json` automáticamente en cada corrida (también gitignored).