metis-desk/docs/arquitectura/pruebas.md
David f6c6b8c95c refactor: replace Label component with FormLabel for consistent required indicator display
- Updated TeleworkAuthorizationForm, WorkProfileForm, PasswordForm, CredentialForm, UserForm, and various resource-related forms to use FormLabel instead of Label.
- Introduced FormLabel component to encapsulate required indicator logic.
- Removed optional labels from localization files and adjusted tests accordingly.
- Ensured accessibility and consistency across forms by implementing required indicators visually.
2026-10-15 18:02:32 +02:00

1.4 KiB

Pruebas

Las pruebas verifican comportamiento observable, no detalles internos.

  • DTO: casos válidos, inválidos, límites, claves desconocidas y semántica de ausencia.
  • InputMapper: adaptación a Value Objects y errores de dominio, sin repetir Zod.
  • UseCase: colaboración, transacciones, propagación de Result e idempotencia cuando corresponda.
  • HTTP: middleware, entrada, contratos de salida, estados y autorización.
  • Frontend: textos traducidos, estados y acciones observables.

Usar el runner nativo de Node.js con tsx. Las pruebas HTTP técnicas abren Express en un puerto efímero y usan fetch real, sin necesitar base de datos. Las pruebas de persistencia utilizan MariaDB y exclusivamente la base de pruebas. No utilizar esperas arbitrarias. Las pruebas web usan renderizado React en servidor para verificar es/en, estados y contratos observables. No sustituyen una prueba de interacción en navegador.

archive/ queda fuera de la suite activa. Las pruebas de retirada comprueban la ausencia de las funciones archivadas y la conservación de los datos de las entidades activas.

Comprobaciones transversales: pnpm typecheck, pnpm lint, pnpm test, pnpm check y pnpm build. Si una no se ejecuta o falla, documentar exactamente cuál y por qué.

La prueba web fija el tsconfig raíz mediante TSX_TSCONFIG_PATH para que el runtime JSX automático también se aplique al código importado desde módulos del workspace.