EN · DE · RU · FR · ES

#2758: rest.test.js

projectforge-webapp/src/utilities/rest.test.js Suite de pruebas unitarias · projectforge-webapp/src/utilities/rest.test.js 80 líneas · 65 código · 0 comentarios · 15 en blanco
Suite de pruebas para el módulo constructor de URL REST (rest.js), que verifica la corrección de la constante de URL base, la serialización de parámetros de consulta y el ensamblado de URL de servicio. Utiliza la API global it/describe/expect de Jest. Este archivo de prueba garantiza que los cambios en el enrutamiento de URL (como la migración del prefijo del endpoint REST de /rest a /rs) no rompan silenciosamente la lógica de construcción de URL de la que dependen docenas de componentes que llaman a la API.

Arquitectura

Estructura de la prueba

El archivo prueba tres funciones exportadas de rest.js:

baseURL — una única aserción de que la constante es igual a la cadena esperada. Actúa como un canario: si la URL base alguna vez cambia inesperadamente, esta prueba lo detecta.

createQueryParams — un bloque descrito con cuatro casos: parámetros vacíos (devuelve cadena vacía), un único par clave-valor, múltiples pares clave-valor unidos con &, y parámetros que contienen caracteres especiales que deben codificarse en URI (por ejemplo, diéresis alemanas en Schwarzwälder Kirschtorte).

getServiceURL — un bloque descrito con tres casos: parámetros indefinidos (solo añade la ruta a la base), parámetros vacíos (lo mismo), y parámetros presentes (URL completa con cadena de consulta). Prueba el ensamblado de la URL completa del endpoint REST a partir de una ruta de servicio y parámetros opcionales.

Migración de enrutamiento impulsada por pruebas

Este archivo de prueba jugó un papel crítico durante la migración del prefijo de la API. Cuando la URL base cambió de /rest a /rs, las expectativas de la prueba sirvieron como especificación: todas las aserciones se actualizaron primero para reflejar los nuevos valores esperados, luego se cambió la implementación en rest.js hasta que las pruebas pasaron. Posteriormente, la migración a Vite movió el manejo del proxy al nivel de la herramienta de compilación, lo que hizo que baseURL fuera comprobable como una cadena vacía en lugar de /rs.

Historial de Git

CommitQué cambió
bf988bc6dCambió el valor esperado de baseURL de '/rs' a '' (cadena vacía). Esto acompañó la migración de react-scripts a Vite: el servidor de desarrollo de Vite maneja el reenvío del proxy de las rutas /rs y /rest al backend, por lo que la constante de URL base de la aplicación React ya no necesita el prefijo, ya que la capa de proxy lo maneja de forma transparente.
f744162e7Actualizó todas las expectativas de prueba de '/rest' a '/rs' en todo el archivo — cuatro ocurrencias en los casos de prueba de getServiceURL y una en baseURL. Esto reflejó la consolidación del endpoint REST del backend, donde el antiguo prefijo /rest fue reemplazado por /rs para mantener la coherencia con el esquema de montaje de páginas de Wicket.
7ea575588Creó el archivo de prueba con la suite de pruebas inicial utilizando '/rest' como prefijo base del servicio. Estableció el patrón de probar parámetros vacíos, un solo parámetro, múltiples parámetros y caracteres especiales codificados en URI. Los datos de prueba lúdicos (pasteles, sabor, Schwarzwälder Kirschtorte) se originan aquí.