1.9 KiB
1.9 KiB
Tests frontend con node:test
El harness frontend vigente del ERP usa:
node:testcomo runnertsxcomo transpiler- renderizado en Node puro
react-dom/serverpara tests React sin DOM real
No existe infraestructura activa de vitest, jest, jsdom ni happy-dom en el monorepo.
Requisitos
Ejecuta los tests en Ubuntu desde la raíz del repo:
cd /home/david/dev/factuges-erp
node --version
pnpm --version
El runtime esperado del repo es Node >= 24.
Comandos canónicos
Test React individual
cd /home/david/dev/factuges-erp
pnpm test:frontend -- modules/customer-invoices/src/web/proformas/update/ui/components/proforma-update-help-popover.test.tsx
Tests frontend de un módulo
cd /home/david/dev/factuges-erp
pnpm test:frontend -- modules/customer-invoices/src/web/**/*.test.tsx
Tests frontend de apps/web
cd /home/david/dev/factuges-erp
pnpm test:frontend -- apps/web/src/**/*.test.tsx
Test TypeScript puro
cd /home/david/dev/factuges-erp
pnpm test:unit -- packages/rdx-utils/src/helpers/__tests__/maybe.test.ts
Mocking
Los tests frontend que necesitan mocks de módulos deben usar mock.module() de node:test.
Eso obliga a ejecutar el runner con:
node --experimental-test-module-mocks --import tsx --test
Por eso el script oficial es pnpm test:frontend.
Qué no hacer
- No ejecutar tests React con
pnpm dlx tsx --testsi el test usamock.module(). - No asumir
jsdomo@testing-library/reactsi el test actual solo necesita SSR. - No importar barrels amplios si el test solo necesita un componente o helper local.
Criterios prácticos
- Usa
pnpm test:unitpara tests.tso.tsxque no dependan demock.module(). - Usa
pnpm test:frontendcuando el test React necesitemock.module(). - Si un componente necesita traducciones, mockea
../../../../i18no el helper local antes de arrancar elmanifestdel módulo.