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-v8 genera 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 fetch en 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.fetch con vi.fn(); verifica URL, método, headers, JSON enviado y errores HTTP sin necesitar backend.
  • Vistas: usa vi.mock() para servicios/composables y flushPromises() para resolver operaciones asíncronas.
  • Componentes: monta con Vue Test Utils, dispara interacciones y comprueba contenido, atributos y eventos emitidos.

Añadir una prueba

  1. Colócala bajo tests/components/, tests/services/ o tests/views/, de acuerdo con el módulo.
  2. Sigue el patrón cercano y cubre el caso correcto más un error relevante.
  3. Durante el desarrollo ejecuta el archivo concreto; antes de entregar, ejecuta la suite completa.
  4. Ejecuta npm run test:coverage cuando 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.