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

Spring Batch desde Cero

Aprende los fundamentos de Spring Batch, un framework de Java para el procesamiento de grandes volúmenes de datos. Descubre cómo iniciar un proyecto, configurar tu entorno y crear un flujo de trabajo básico.

Leer más →