Herramientas
Vitest
Framework de pruebas unitarias e integración basado en Vite. Ejecuta proyectos paralelos para tests de servidor, cliente e integración con soporte nativo de TypeScript.
MSW
Mock Service Worker intercepta peticiones HTTP a nivel de red en Node.js, permitiendo simular las APIs externas de Flask PDF y el servicio de correo sin dependencias reales.
Playwright
Framework de pruebas E2E que ejecuta escenarios reales en Chromium, Firefox y dispositivos móviles Safari. Graba trazas, capturas y vídeo ante fallos para depuración.
@nuxt/test-utils
Utilidades oficiales de Nuxt para testing. Levanta el servidor completo de Nuxt (incluyendo Nitro) en un puerto dedicado durante las pruebas de integración.
@vue/test-utils
Biblioteca de montaje de componentes Vue 3. Permite renderizar, interactuar y hacer aserciones sobre componentes de forma aislada con
happy-dom como entorno DOM.Tipos de Pruebas
- Unitarias
- Integración
- E2E
Las pruebas unitarias validan funciones, composables y servicios de forma aislada, sin levantar el servidor ni realizar peticiones reales.Se ubican en El setup global en
tests/unit/ y se ejecutan con los scripts test:unit:server (entorno Node) y test:unit:client (entorno happy-dom) definidos en package.json.tests/setup/global.ts silencia los console.warn irrelevantes y limpia todos los mocks automáticamente entre pruebas con vi.clearAllMocks() y vi.restoreAllMocks().Estructura de Tests
Tests de Integración API
La siguiente tabla resume los endpoints cubiertos por la suite de integración, la cantidad de casos de prueba y lo que cada grupo valida:Configuración de Vitest
El archivovitest.config.ts utiliza defineVitestConfig de @nuxt/test-utils para heredar la configuración de Vite/Nuxt. No define proyectos Vitest separados; los scripts de package.json pasan el flag --project directamente para segmentar la ejecución:
Los umbrales de cobertura exigen un mínimo de 80 % en líneas, funciones y sentencias, y 75 % en ramas. El reporte se genera en
./coverage/ en formatos text, json, html y lcov.
Mock Service Worker (MSW)
MSW intercepta las peticiones HTTP salientes a las APIs externas directamente en la capa de red de Node.js, sin necesidad de modificar el código de producción. El servidor MSW se configura entests/setup/msw.ts:
setupMSW() y registra sus propios handlers adicionales con mswServer.use(...) para simular las respuestas específicas que necesita. Las solicitudes no manejadas emiten una advertencia (onUnhandledRequest: "warn") para detectar llamadas inesperadas a servicios reales.
Los handlers se reinician después de cada prueba con mswServer.resetHandlers(), garantizando que los handlers de un test no contaminen los siguientes.
Ejecutar Tests
Las pruebas de integración requieren que el servidor Nuxt pueda levantarse en el puerto 4000.
@nuxt/test-utils lo inicia automáticamente antes de ejecutar los tests, pero el puerto debe estar libre. Si tienes otra instancia del servidor en ese puerto, deténla antes de correr pnpm test:integration.