Resumen

Configura y ejecuta tests unitarios en un monorepo con Next/Nx de forma rápida y confiable. Aquí verás cómo organizar archivos spec.ts, usar mocks que simulan el backend y correr pruebas por componente o de toda la base con caché de Nx Cloud, todo con comandos simples desde la consola.

¿Cómo se organizan los tests unitarios en el monorepo?

Los tests unitarios son pruebas automatizadas que verifican el funcionamiento correcto de una unidad mínima de código. Se añadieron archivos de prueba en varias carpetas de packages y cambios en el project json para incorporarlos.

¿Qué archivos spec.ts y mocks se agregan?

  • En source de cada componente, se agrega un spec.ts por componente.
  • Incluye mocks para simular el backend y validar acciones clave.
  • Se replica en la aplicación uno, la aplicación dos, y también en modelos y componentes compartidos.

¿Qué cubren las pruebas básicas por componente?

  • Crear la aplicación sin errores.
  • Propiedades iniciales definidas.
  • Constructor configurado.
  • Métodos del componente: por ejemplo, llamar a enroll in course con un string.
  • Existencia de métodos como engine init.
  • Comportamiento de UI: botón, tarjetas y tabla, con lo que “debería hacer” en cada acción.
  • Modelos que correspondan a lo esperado por back-end y front-end.

Además, se usan bloques de describe para agrupar cada conjunto de tests en los spec.ts. Si quieres profundizar en pruebas con Jest en Angular, se sugiere el curso mencionado.

¿Cómo ejecutar tests con Nx Console y terminal?

Puedes lanzar las pruebas desde la Next console en la sección de test o ejecutar los comandos en la terminal. Ambas opciones aprovechan el ecosistema de Nx/Next.

¿Qué comandos ejecutar en app1 y app2?

  • Aplicación uno (estudiantes):
npx next run app1 test
  • También desde terminal usando Nx directamente:
npx nx run app1 test
  • Aplicación dos, y también para UI shared y utils common, se ejecuta de forma análoga.

Resultados observados. - app1: 20/20 tests en 30 segundos la primera vez. - app1 con caché de Nx Cloud: 225 ms en la segunda ejecución. - app2: 21/21 en 6 segundos. - UI shared: sin tests incluidos. - utils common: 1/1 en modelos.

¿Qué aporta la caché de Nx Cloud en los tests?

  • Ejecuciones mucho más rápidas al reutilizar resultados previos.
  • Los tiempos bajan de segundos a milisegundos cuando no cambian los artefactos.
  • Los resultados previos quedan guardados y se muestran si no hay cambios detectados.

¿Cómo optimizar la ejecución y evitar problemas de caché?

La caché acelera, pero puede “pegar” resultados si un cambio no se detecta (por ejemplo, si fallaba 19/20 y ya corregiste). Aquí tienes cómo solucionarlo y cómo probar todo de una vez.

¿Cómo limpiar la caché y reiniciar el demonio?

  • Si un cambio no se refleja, usar:
npx nx reset
  • Esto borra la caché, detiene el demonio que escucha cambios y reinicia todo.
  • Útil cuando una corrección no dispara recompilación o re-ejecución de pruebas.

¿Cómo correr todos los tests con un solo comando?

  • Para testear toda la aplicación de una vez:
npx NX run many target test all
  • Ejecuta los cuatro targets configurados y muestra el estado consolidado.
  • Ideal para validar el monorepo completo sin ir paquete por paquete.

¿Te gustaría compartir qué estrategias de pruebas añadirías a estos spec.ts o qué mocks sumarías para cubrir más casos?