# ADR-010: Testing Strategy **Estado:** Aceptada **Fecha:** 2025-11-24 **Responsable:** Architecture-Analyst **Proyecto:** ERP Construccion ## Contexto El proyecto requiere testing robusto para: - Evitar regresiones en funcionalidades criticas - Validar integraciones INFONAVIT - Asegurar calculos de estimaciones correctos - Garantizar RLS policies funcionan ## Decision **Piramide de Testing:** | Tipo | Coverage Objetivo | Herramienta | |------|------------------|-------------| | Unit Tests | 80% | Jest + Testing Library | | Integration Tests | 70% | Jest + Supertest | | E2E Tests | 60% (flujos criticos) | Playwright | **Flujos criticos E2E:** - Login y autenticacion - Crear proyecto y asignar lotes - Crear y aprobar estimacion - Proceso completo INFONAVIT - Portal derechohabiente ## Justificacion ### Leccion de Gamilit - 14% coverage es INACEPTABLE (muchos bugs) - Minimo 70% para refactoring seguro ### Especifico para Construccion - Calculos de estimaciones deben ser exactos - RLS policies criticas (seguridad INFONAVIT) - Integraciones externas requieren mocks ## Consecuencias ### Positivas - Reduccion 70% bugs - Refactoring seguro - Deployment con confianza - Documentacion viva (tests como specs) ### Negativas - Tiempo adicional de desarrollo (~20%) - Mitigacion: TDD reduce tiempo total ## Implementacion ### Acciones Requeridas - [ ] Configurar Jest + Testing Library - [ ] Configurar Playwright para E2E - [ ] Crear fixtures para datos de prueba - [ ] Implementar tests para calculos de estimaciones - [ ] Tests de RLS policies ### Criterios de Aceptacion - Coverage >= 70% antes de PR - E2E pasan en CI/CD - Zero bugs criticos en calculos ## Referencias - [ERP Generico ADR-010](../../erp-generic/docs/adr/ADR-010-testing-strategy.md)