/api/health
Disponibilidad
Estado del servicio
BACKEND · API TESTING
La lógica también debe demostrar su calidad.
Una API conecta las interfaces con las reglas de negocio, los datos y los servicios externos. Verificar su comportamiento permite detectar errores, validar respuestas y reducir riesgos antes de que impacten en la experiencia del usuario.
Guía de códigos de estado HTTP
Las respuestas HTTP indican cómo procesó el servidor una solicitud. Seleccioná una familia para conocer su significado, sus códigos más habituales y su relación con las pruebas de API.
2xx — Respuestas exitosas
El servidor procesó correctamente la solicitud.
Perspectiva QA: un código HTTP no determina por sí solo si una prueba fue aprobada. La evaluación depende del resultado esperado. Por ejemplo, HTTP 400 puede ser correcto cuando se verifica el rechazo de datos inválidos.
01. Arquitectura de la API
El backend del portfolio está desarrollado con Node.js y Express. Expone endpoints para comprobar el estado del servicio, registrar visitantes y procesar mensajes de contacto.
- GET /api/health: verifica la disponibilidad de la API.
- POST /api/visitors: recibe los datos del visitante y su consentimiento.
- POST /api/contact: valida y procesa mensajes de contacto.
Objetivo de QA: comprobar que cada endpoint responda de acuerdo con su propósito y gestione correctamente las solicitudes recibidas.
Explorador de endpoints
Seleccioná un endpoint para ejecutar una prueba real y consultar su respuesta HTTP.
/api/visitors
Visitantes
Validación del registro
/api/contact
Contacto
Validación del mensaje
API + Validaciones
Integración
Rechazo de datos inválidos
Seleccioná una tarjeta y ejecutá la prueba.
02. Validaciones y reglas de negocio
Las validaciones verifican que los datos recibidos cumplan las reglas de negocio antes de procesar una solicitud.
02.1. Registro de visitantes
Comprobá cómo responde la API ante datos obligatorios vacíos, formatos incorrectos y falta de consentimiento.
Seleccioná un caso y ejecutá la prueba.
02.2. Formulario de contacto
Verificá el rechazo de mensajes vacíos, textos que superan el límite permitido y datos de contacto inválidos. Estos casos no deben enviar correos.
Seleccioná un caso y ejecutá la prueba.
Objetivo de QA: confirmar que la API rechace las solicitudes inválidas con respuestas HTTP coherentes y mensajes de error controlados.
03. Persistencia de datos
SQLite almacena los registros de visitantes. Estas pruebas comprueban que los datos válidos se acepten y que las restricciones de integridad impidan registros no autorizados.
03.1. Registro válido
Comprueba que la API acepte un visitante válido y lo almacene en SQLite, devolviendo su identificador.
Resultado esperado: HTTP 201 y un ID entero.
Efecto: crea un registro real en la base de datos.
Esperando ejecución de la prueba.
03.2. Sin consentimiento
Comprueba que la API rechace el registro cuando el visitante no ha otorgado el consentimiento obligatorio.
Resultado esperado: HTTP 400 y errores de validación.
Efecto: no debe crear un registro.
Esperando ejecución de la prueba.
Objetivo de QA: verificar la aceptación de registros válidos y el rechazo de datos que incumplan las reglas de integridad.
04. Pruebas automatizadas
La suite automatizada verifica el comportamiento del backend mediante pruebas de API, validaciones unitarias y operaciones sobre SQLite. Su ejecución permite detectar regresiones y comprobar que los resultados obtenidos coincidan con los esperados.
Objetivo de QA: obtener resultados reproducibles y detectar regresiones durante los cambios del backend.
Resultados de la suite automatizada
Última ejecución verificada: 23/10/2026, mediante npm.cmd test. Se ejecutaron 15 pruebas automatizadas, sin fallos ni omisiones.
Estado de ejecución
Distribución por categoría
Total: 15 pruebas distribuidas en tres categorías.
Consultar pruebas automatizadas
01. API e integración
backend/tests/api.test.js
Nueve pruebas que verifican las respuestas HTTP, las validaciones de visitantes y el tratamiento de mensajes de contacto.
- Disponibilidad de la API.
- Registro válido de visitantes.
- Rechazo de correo inválido.
- Rechazo de teléfono inválido.
- Rechazo por falta de consentimiento.
- Servicio de correo no configurado.
- Envío correcto mediante el servicio de correo.
- Rechazo de mensaje vacío.
- Gestión de fallos del proveedor SMTP.
02. Persistencia SQLite
backend/tests/database.test.js
Dos pruebas independientes sobre una base de datos temporal en memoria.
- Inserción y recuperación de un visitante.
- Rechazo de inserción sin consentimiento.
03. Validaciones unitarias
backend/tests/visitor.validator.test.js
Cuatro pruebas que comprueban las reglas de validación de los datos del visitante.
- Aceptación de un visitante válido.
- Rechazo de correo inválido.
- Rechazo de teléfono inválido.
- Rechazo por falta de consentimiento.
Resultado: suite completada con 15 pruebas aprobadas, 0 fallidas y 0 omitidas.
Estos datos corresponden a la última ejecución verificada manualmente. Los gráficos son representaciones estáticas: no ejecutan ni actualizan las pruebas automáticamente.