- OBSERVATIONS.md reseteado para Sprint 2 - STRATEGIC_DIRECTION.md con reflexiones del sprint - TECH_DEBT.md curado: items resueltos archivados - methodology/CASE_STUDIES/inq-roi-sprint-1-5.md generado Sprint 1.5 cerrado: - 11 etapas + 1 fix pre-Etapa 11 - 526 unit tests + 38 E2E al cierre - Producto con identidad InQ aplicada en web + 3 PDFs - Metodología documentada con casos reales (2 de mala clasificación de iniciativa, originaron AP.8 + refinamiento C.6) - Material para transmisión al equipo de 5 técnicos
7.3 KiB
Estado de cobertura — fin de Sprint 1.5
Generado: Etapa 10, 18 mayo 2026. Base: 526 tests unitarios (33 archivos), suite E2E Playwright. Propósito: baseline de partida para Sprint 2.
Resultado de la suite al cierre del sprint
Tests unitarios (Vitest)
| Métrica | Valor |
|---|---|
| Total tests | 526 |
| Verdes | 526 |
| Rojos | 0 |
| Skip | 0 |
| Archivos de test | 33 |
| Duración | ~7 segundos |
Tests E2E (Playwright)
| Métrica | Valor |
|---|---|
| Total tests | 38 |
| Verdes | 34 |
| Rojos | 4 (ver Regresiones documentadas) |
| Skip | 0 |
| Duración | ~75 segundos |
Build / Typecheck / Lint
| Check | Estado | Nota |
|---|---|---|
npm run build |
✅ Limpio | 2865 módulos, ~1 segundo |
npm run typecheck |
✅ Sin errores | TypeScript strict |
npm run lint |
⚠️ 3 errores, 92 warnings | Errores = no-irregular-whitespace en tests preexistentes; warnings = @typescript-eslint/no-explicit-any esperados en interfaces jsPDF |
Regresiones documentadas (sin acción correctiva)
RE-01 — etapa-4-pdfs.spec.ts (3 tests)
Tipo: test obsoleto, no regresión de producción.
Síntoma: los tests esperan 3 páginas en Actual/Automatizado y 4 en ROI. El producto ahora genera 4 y 5 páginas respectivamente (cambios de Etapas 5-8).
Causa: el archivo fue escrito para el baseline de Etapa 4 y no se actualizó cuando Etapas 5, 7 y 8 cambiaron la estructura de páginas.
Impacto: ninguno en producción. Los PDFs son correctos.
Acción Sprint 2: actualizar las aserciones de página en etapa-4-pdfs.spec.ts
o archivarlo en tests/e2e/archive/ como registro histórico.
RE-02 — prod-smoke.spec.ts (1 test)
Tipo: test obsoleto, no regresión de producción.
Síntoma: el test verifica page.title con /Process Cost Platform/
pero el título actual es "InQ ROI — Cuantificá tus procesos".
Causa: la migración de marca se hizo en Etapa 2 del Sprint 1.5. El smoke test no se actualizó al momento del cambio.
Impacto: ninguno en producción.
Acción Sprint 2: actualizar el selector del smoke test a /InQ ROI/.
Áreas con cobertura sólida (unitarios + E2E)
Motor de simulación BPMN
tests/domain/— simulación determinística, gateways XOR/AND, probabilidadestests/integration/bpmn-parser.test.ts— parsing de procesos realestests/integration/bpmn-collaboration.test.ts— colaboración- Evaluación: muy sólida. El motor es el corazón del producto y está bien cubierto.
Cálculo de ROI
tests/domain/roi.test.ts— casos edge (inversión cero, ahorro negativo, payback infinito)tests/lib/format-payback.test.ts— 12 casos del formateador- Evaluación: sólida. Cálculos puros con edge cases cubiertos.
Exportación PDF — 3 generadores
tests/lib/export/pdf-orientation.test.ts— orientaciones portrait/landscapetests/lib/export/pdf-roi-page1.test.ts— página 1 del ROI (gradiente, Top3, grid)tests/lib/export/pdf-roi-pages2-5.test.ts— tablas, análisis, metodología, gráfico SVGtests/lib/export/pdf-scenario-page1.test.ts— página 1 Actual/Automatizadotests/lib/export/pdf-sections-shared.test.ts— header/footer compartidos- E2E: Etapas 4-8 validan PDFs reales con pdfjs-dist
- Evaluación: la más completa del sprint. Cobertura unitaria + E2E de los 3 PDFs.
Helpers de formato
tests/lib/format.test.ts— currency, minutes, timestamptests/lib/format-payback.test.ts— payback en todos los rangostests/lib/colors.test.ts— tokens de color del heatmap- Evaluación: sólida. Funciones puras con muchos casos.
Design tokens
tests/design-system/tokens.test.ts— paleta InQ, colores CONCILIA excluidos- Evaluación: básica pero suficiente para validar el sistema de identidad.
Badge de automatización en BpmnCanvas
tests/features/workspace/BpmnCanvas.test.tsx— lifecycle overlay, posición, HTMLtests/features/workspace/BpmnCanvas-badge.test.ts— propiedades CSS del badge- E2E:
etapa-9-badge.spec.ts— aparece/desaparece/reaparece, screenshots - Evaluación: sólida tras Etapa 9.
Invalidación del store de simulación
tests/store/simulation-store-invalidation.test.ts— 7 casos de invalidación- Evaluación: sólida para los escenarios cubiertos.
Áreas con cobertura parcial
Componentes React del reporte
tests/features/report/existe con tests deCumulativeSavingsChart,ComparisonTable,RoiKpiBar- Gap: los tests son snapshots. No validan comportamiento interactivo ni edge cases de renderizado.
- Riesgo: bajo a corto plazo, medio cuando se agreguen features.
Persistencia (Dexie/IndexedDB)
- Cobertura: indirecta vía store tests
- Gap: no hay tests directos de la capa de persistencia (migraciones, lectura/escritura de procesos complejos)
- Riesgo: medio. Las migraciones son el punto más frágil — un error ahí destruye datos del usuario.
ActivityPanel
- Gap: sin tests unitarios ni E2E específicos del panel de actividades
- El comportamiento se verifica indirectamente en tests E2E de generación de PDF
- Riesgo: medio. El panel es la interfaz principal de configuración.
Áreas sin cobertura
Flujo completo de importación BPMN
- No hay test E2E que valide el flujo completo: archivo BPMN inválido → error legible
- No hay test para BPMNs con pools/lanes (collaboration.test.ts cubre el parser, no el UX)
- Riesgo: medio. Los usuarios importan archivos de herramientas externas con formatos variables.
Exportación CSV
tests/e2e/tieneexport-pdf.spec.tsyexport-roi.spec.tspero los CSV no se validan con el mismo rigor- Riesgo: bajo por ahora.
Regresión visual de PDFs (golden files)
- No hay comparación pixel-a-pixel de PDFs entre versiones
- Riesgo: medio-alto. Un cambio visual inadvertido en
pdf-sections.tspuede pasar los tests actuales sin ser detectado.
Edge cases del simulador con procesos grandes
- Tests del motor cubren procesos de 3-10 actividades
- Gap: procesos de 20+ actividades, gateways OR inclusivos, subprocesos anidados
- Riesgo: bajo a corto plazo.
Gateway OR inclusivo
- El motor simula OR como XOR (documentado). No hay test que valide que la advertencia aparece.
- Riesgo: bajo hasta que se implemente OR real.
Gaps priorizados para Sprint 2
Alta prioridad
- Regresión visual PDF (golden files): implementar comparación de PDF contra baseline usando
pdfjs-dist. Guarda página como PNG y compara con imagen de referencia. Detecta cambios involuntarios. - Tests de migración Dexie: validar que cada versión del schema se migra correctamente sin pérdida de datos.
- Smoke test E2E con BPMN inválido: verificar mensaje de error apropiado cuando el archivo no es BPMN válido.
Media prioridad
- Tests del ActivityPanel: verificar que el formulario de configuración de actividad persiste correctamente a IndexedDB.
- Actualizar tests obsoletos:
etapa-4-pdfs.spec.tsyprod-smoke.spec.ts(ver RE-01, RE-02). - Tests de flujo completo negativo: ¿qué pasa si se simula sin configurar ningún costo?
Baja prioridad
- Tests de stress del simulador: proceso con 30+ actividades y gateways anidados.
- Tests de exportación CSV: validar contenido y estructura de los archivos CSV generados.