Requisitos
Pruebas End-to-End para APIs con Node.js y Express
Introducción: pruebas e2e con Node.js
Exploración y Configuración de APIs con Insomnia y Postman
Pruebas en Node.js con Jest y Clean Architecture
Configuración y uso de Jest para pruebas end-to-end en JavaScript
Pruebas End-to-End con Supertest y Node.js
Buenas prácticas en pruebas con Jest y manejo de ciclos abiertos
Pruebas a la API de Fake Store
Configuración de Entorno de Pruebas para Aplicaciones Node.js con Twen.js
Generación de Reporte de Cobertura con Pruebas End to End
Pruebas de Integridad de Datos con DTOs y Joy en APIs REST
Pruebas End-to-End con Base de Datos en API REST
Pruebas de Autenticación en Login con JavaScript
Pruebas de Rutas Protegidas con API Key en Node.js
Pruebas End-to-End con Access Token en API REST
Pruebas Efectivas de Creación de Usuarios en POS con Bases de Datos
Pruebas en Entornos de Desarrollo Avanzados
Pruebas End-to-End: Gestión de Datos con Semillas Automatizadas
Configuración de Bases de Datos para Pruebas End-to-End con Docker
Creación de Sets de Datos Manuales para Pruebas End-to-End
Sets de Datos en SQLite: Creación y Gestión Efectiva
Uso de Unsook para Migraciones Programáticas en Pruebas
Pruebas de API: Creación de Categorías con Roles y Tokens
Pruebas End-to-End para API de Productos sin Autenticación
Pruebas de Paginación en Endpoints de Productos con Limit y Offset
Mocking y automatización
Mocking de Servicios Externos con NodeMailer en Pruebas Tuen
Automatización de Pruebas con GitHub Actions en Integración Continua
Próximos pasos
Pruebas de APIs punto a punto con Node.js
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Las pruebas de endpoints con restricciones son comunes al desarrollar APIs. En los casos donde se requiere más que un simple login, es esencial entender cómo enviar API keys en las cabeceras (headers) para obtener autorización. Este artículo explica el proceso para ejecutar dichas pruebas usando herramientas como Insomnia o Postman, y cómo integrarlas en tu flujo de pruebas automatizadas.
En primeras instancias, al enviar solicitudes de prueba a un endpoint protegido por un middleware, es común encontrarse con el mensaje de "no autorizado", debido a la falta de un API key adjunto en los headers. Para rectificar esto:
Verificar la necesidad de la API Key: Asegúrate de que la ruta que estás probando exige una API Key. Esto suele estar especificado en el middleware, que controla el acceso a la ruta.
Consultar las variables de entorno: Si la API key se almacena como una variable de entorno, localízala en el archivo de configuración (generalmente .env).
Configurar la solicitud con la API Key: Utiliza herramientas como Insomnia o Postman para enviar la API Key en los headers de la solicitud. Asegúrate de que el valor sea exacto.
Por ejemplo, configurar una API Key desde Insomnia puede lograrse accediendo a los headers y añadiendo el campo API
junto al valor correspondiente.
Una vez dominado el envío manual de API Keys, es momento de automatizar el proceso dentro del código. Aquí hay un ejemplo de cómo hacerlo en un archivo JavaScript de pruebas:
const request = require('supertest');
const app = require('../app'); // Asegúrate de apuntar al archivo correcto
const config = require('../config');
describe('Pruebas para nueva ruta', () => {
it('debería retornar 401 sin API key', async () => {
const response = await request(app).get('/nueva-ruta');
expect(response.statusCode).toBe(401);
});
it('debería retornar 401 con API key inválida', async () => {
const response = await request(app)
.get('/nueva-ruta')
.set('API', 'invalid-api-key');
expect(response.statusCode).toBe(401);
});
it('debería retornar 200 con API key válida', async () => {
const response = await request(app)
.get('/nueva-ruta')
.set('API', config.apiKey);
expect(response.statusCode).toBe(200);
});
});
Esta lección ha mostrado cómo realizar pruebas a rutas protegidas ajustando los headers para incluir API Keys. Esto no sólo facilita las pruebas manuales, sino que además mejora la automatización de las pruebas a través de herramientas como supertest
. Al comprender cómo emplear API Keys adecuadamente, estás en el camino hacia la construcción de APIs seguras y confiables.
Recuerda siempre mantener organizadas tus variables de entorno y automatizar tus pruebas. Estas prácticas asegurarán una mejor gestión de tus proyectos y te prepararán mejor para las futuras lecciones sobre la validación de autenticaciones más avanzadas, como las basadas en JWT. ¡Sigue adelante con tu aprendizaje y sigue explorando las maravillas del desarrollo de APIs robustas y seguras!
Aportes 2
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?