Testeando una API de Express.js con Vitest

Testeando una API de Express.js con Vitest

Erick Medel Galindo

Paso 1: Configuración de Express

Iniciar el repositorio

Crea un nuevo directorio para tu proyecto y navega dentro de él:

mkdir my-express-app && cd my-express-app

Luego, inicializa un nuevo proyecto de Node.js:

npm init -y

A continuación, instala las dependencias:

npm install express vitest @vitest/ui supertest dotenv

Crear archivos de la API

Crea un nuevo archivo y agrega nuestras rutas para poder exportarlas, iniciar el servidor con esas rutas y también poder probarlas:

touch root.js

Agrega:

import express from "express"; const app = express(); app.get("/api/products", (req, res) => { res.status(200).json([ { id: 1, name: "iPhone", }, { id: 2, name: "MacBook Pro", }, ]); }); export { app };

Crea el archivo que inicializará el servidor, podemos ejecutarlo con el comando "node app.js":

touch app.js
import { app } from "./root.js"; import dotenv from "dotenv"; dotenv.config(); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`⚡ Server listening on port \x1b[33m${port}\x1b[37m`); });

Actualiza el archivo package.json para poder usar módulos ECMAScript. Tu archivo debería verse así:

{ "name": "my-express-app", "version": "1.0.0", "type": "module", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@vitest/ui": "^1.4.0", "dotenv": "^16.4.5", "express": "^4.19.1", "supertest": "^6.3.4", "vitest": "^1.4.0" } }

Ahora puedes probar tu API usando el siguiente comando!

node app.js

Paso 2: Configuración de Vitest

Crear archivos de prueba

Crea el archivo que será leído por vitest y escribe la prueba:

touch index.test.js

Agrega:

import { test, beforeEach, afterEach } from "vitest"; import { app } from "./root.js"; import request from "supertest"; let server; beforeEach(() => { server = app.listen(); }); afterEach(() => { server.close(); }); test("GET /api/products", async ({ expect }) => { const response = await request(server).get("/api/products"); expect(response.statusCode).toBe(200); server.close(); });

Paso 3: ¡Prueba tu API!

Para ejecutar las pruebas, simplemente ejecuta el siguiente comando:

npx vitest

¡Lo lograste!

npx vitest

Puedes hacer este proceso más fácil modificando los scripts de package.json de la siguiente manera:

"scripts": { "test": "vitest" },

¿Te gusta mi contenido? ¡Invítame un café! ☕

Buy Me a Coffee

Última Publicación

Aprende a implementar un envío de correos electrónicos programados con Spring Boot y Resend

De forma sencilla, envía correos a través de una API REST con Spring Boot y Resend.

Leer más →