Características
La aplicación Next.js implementa un robusto conjunto de características que abarcan la gestión de estados, el modelo de bases de datos y estrictos estándares de testing.
Gestión de Estado y Formularios
Sección titulada «Gestión de Estado y Formularios»Para mantener una separación clara entre el servidor y el cliente, aplicamos diferentes estrategias dependiendo del dominio de los datos:
- Estado del Servidor (Server State): Utilizamos
@tanstack/react-queryacoplado con@better-fetch/fetchpara la recuperación, caché e invalidación de datos asíncronos. - Estado del Cliente (Client State): Delegamos el estado complejo e interactivo a
zustand, manteniendo flujos de trabajo predecibles y una rápida reactividad. - Formularios y Validación: El procesamiento de formularios se maneja en el cliente usando
react-hook-formen combinación con@hookform/resolversyzodpara la seguridad tipada de inicio a fin.
Estilos y Sistema de Diseño
Sección titulada «Estilos y Sistema de Diseño»La aplicación se apoya exclusivamente en CSS/SCSS Modules utilizando variables de diseño estandarizadas.
- Usamos el framework Bulma subyacente para grids y clases utilitarias base.
- Utilizamos tokens de diseño con el prefijo
--lynx-*definidos ensrc/visual/theme.ts(ej.--lynx-box-radius), anulando las variables predeterminadas de Bulma. - Siempre encapsulamos el diseño en un archivo
.module.csso.module.scsspara prevenir colisiones en cascada global.
Integraciones Clave
Sección titulada «Integraciones Clave»- Base de Datos: Se accede a la persistencia a través de Drizzle ORM (
src/modules/database). Las migraciones siempre se ubican ensrc/modules/database/migrations. - Autenticación: Implementada en
src/modules/authy orquestada por el paquete Better Auth global. - Transaccionales: Lógica alojada en
src/modules/mailconsumiendo plantillas interactivas generadas vía React Email.
Estrategia de Testing (Vitest + Playwright)
Sección titulada «Estrategia de Testing (Vitest + Playwright)»Garantizar la estabilidad de esta capa es primordial. Hemos definido umbrales de cobertura que se verifican automáticamente en CI a través de Vitest.
| Nivel de Prueba | Alcance y Herramientas | Comando |
| :----------------------------- | :------------------------------------------------------------------------------------------------ | :-------------- |
| Unitaria (Unit) | Esquemas Zod, DTOs, constructores de configuración y slices de estado Zustand. | pnpm test |
| Integración de Componentes | Renderizado usando React Testing Library (RTL) + userEvent simulando interacciones del usuario. | pnpm test |
| End-to-End (E2E) | Navegadores reales ejecutando flujos completos con interacciones reales, a través de Playwright. | pnpm test-e2e |
Prácticas Recomendadas para Pruebas
Sección titulada «Prácticas Recomendadas para Pruebas»- Colocación: Crea el archivo de prueba (ej.
mi-componente.test.tsx) directamente junto al archivo fuente en el mismo directorio. - Aislamiento: En pruebas unitarias, mockea (simula) siempre la base de datos, las peticiones de red y el sistema de archivos en los bordes.
- Casos Reales: Usa la configuración e2e cuando necesites probar integraciones con infraestructura real (PostgreSQL, Redis, etc.).