Testing - FactoriaF5-Asturias/project-p5-digital-academy-team3-restaurant-frontend GitHub Wiki
Pruebas
Herramientas
- Vitest ejecuta las pruebas con la configuración de Vite.
- jsdom proporciona el entorno DOM.
- Vue Test Utils monta componentes y permite simular interacciones.
@vitest/coverage-v8genera cobertura.- Playwright está configurado como dependencia para pruebas end-to-end.
Vitest usa jsdom, el plugin de Vue y cobertura V8. La cobertura incluye src/**/*.{js,vue} y excluye src/main.js y src/router/, según vitest.config.js.
Organización
tests/
├── components/ # Componentes, agrupados por área
├── services/ # Peticiones y transformación de datos
└── views/ # Flujos de páginas
Los archivos usan las extensiones .test.js o .spec.js.
Comandos
Ejecutar todas las pruebas una vez:
npm run test:unit -- --run
Ejecutar una prueba concreta:
npm run test:unit -- --run tests/services/ProductService.test.js
Generar cobertura:
npm run test:coverage
Ejecutar pruebas end-to-end:
npm run test:e2e
Recomendaciones
- Simula
fetchen pruebas de servicios; no dependas de que el backend esté activo. - Comprueba tanto respuestas correctas como errores HTTP.
- En componentes, verifica contenido visible, eventos emitidos y estados de carga/error.
- Mantén las pruebas aisladas y restaura los mocks entre casos.
Mocking recomendado
- Servicios: reemplaza
global.fetchconvi.fn(); verifica URL, método, headers, JSON enviado y errores HTTP sin necesitar backend. - Vistas: usa
vi.mock()para servicios/composables yflushPromises()para resolver operaciones asíncronas. - Componentes: monta con Vue Test Utils, dispara interacciones y comprueba contenido, atributos y eventos emitidos.
Añadir una prueba
- Colócala bajo
tests/components/,tests/services/otests/views/, de acuerdo con el módulo. - Sigue el patrón cercano y cubre el caso correcto más un error relevante.
- Durante el desarrollo ejecuta el archivo concreto; antes de entregar, ejecuta la suite completa.
- Ejecuta
npm run test:coveragecuando necesites revisar qué código está cubierto. La cobertura no sustituye la revisión de los casos que importan al usuario.
El script npm run test:e2e está declarado para Playwright; confirma que el entorno y los tests E2E requeridos existan antes de usarlo en CI.