Contenido del curso

Pruebas a la API de Fake Store

Pruebas en Entornos de Desarrollo Avanzados

Configuración del proyecto para pruebas E2E

Resumen

Las pruebas end-to-end en Node.js son las que más valor aportan cuando construyes APIs en producción, porque validan que controladores, servicios y bases de datos funcionen como un todo. Aquí aprenderás a preparar el proyecto base en Express, configurar variables de entorno y dejar todo listo para sumar la capa de testing punto a punto.

¿Qué lugar ocupan las pruebas end-to-end en la pirámide del testing?

La pirámide del testing organiza los tipos de pruebas según su alcance y costo. En la base están los unit tests, luego los integration tests, después los end-to-end tests y, finalmente, los UI tests.

Las pruebas end-to-end validan el flujo completo de tu aplicación. Cuando trabajas con una API que integra controladores, servicios y conexión a base de datos, este tipo de pruebas confirma que toda la cadena cumpla con sus funcionalidades.

¿Por qué las pruebas end-to-end generan más valor en una API? Porque verifican el sistema completo en condiciones reales, asegurando que la integración entre capas funcione antes de llegar a producción.

Para seguir el curso necesitas vocabulario previo de testing en JavaScript, así que conviene haber pasado por el curso de introducción al testing antes de avanzar.

¿Cómo clonar y preparar el proyecto base de la API en Node.js?

El proyecto que vas a usar viene de la saga de cursos de Node y ya incluye autenticación, conexión a base de datos en Postgres y envío de correos con Nodemailer. Tu trabajo será sumarle la capa de pruebas end-to-end.

Estos son los pasos para dejar el entorno listo:

  1. Ubícate en la carpeta donde guardas tus proyectos.
  2. Ejecuta git clone con la URL del repositorio de GitHub.
  3. Entra a la carpeta curso-node-js-end-to-end-api.
  4. Corre npm i para instalar las dependencias.
  5. Abre el proyecto en Visual Studio Code o tu editor preferido.

Una vez instaladas las dependencias, queda configurar las variables de entorno antes de levantar el servidor.

¿Cómo configurar el archivo .env para correr la API?

En la raíz del proyecto vas a encontrar un archivo env.example. Ese archivo es la plantilla de las variables de ambiente que necesita la aplicación.

Crea un archivo .env y copia el contenido del ejemplo. Vas a ver configuraciones como:

  • PORT, el puerto donde corre la app (por defecto 3000).
  • La URL de conexión a la base de datos Postgres.
  • Una API key para firmar tokens.
  • Un email y password para el envío de correos con Nodemailer.

Dos campos quedan vacíos a propósito para que tú los completes. El primero es el secreto del JWT, que firma los tokens de acceso. Puedes poner cualquier valor, por ejemplo myCat123.

¿Qué es JWT y por qué necesita un secreto? JWT (JSON Web Token) es el estándar para emitir tokens de autenticación. El secreto es la llave que firma cada token y garantiza que no haya sido alterado.

El segundo campo es la conexión a Postgres. Los valores de usuario, password y nombre de la base los obtienes del archivo docker-compose, donde están definidos. Cópialos a tu .env y la conexión quedará lista.

¿Cómo verificar que la API en Express está corriendo correctamente?

Con las variables configuradas, ejecuta npm run dev en la terminal. Ese comando levanta el entorno de desarrollo y debería mostrarte un mensaje confirmando que la aplicación corre en el puerto 3000.

Para comprobarlo, abre tu navegador y entra a localhost:3000. Si ves el mensaje Hola mundo desde el server de Express, tu aplicación está funcionando. Ese pequeño Hola mundo es la señal de que controladores, configuración y servidor están sincronizados.

Si al correr npm run dev aparecen errores, casi siempre vienen de dos lugares: el secreto vacío del JWT o las credenciales mal copiadas de la base de datos. Revisa esos puntos primero antes de seguir.

Con el proyecto clonado, las dependencias instaladas y el servidor respondiendo, ya tienes la base para sumar pruebas end-to-end. ¿Qué parte del setup te dio más problemas? Cuéntalo en los comentarios para resolverlo en comunidad.