Optimizando la gestión de periodos y configuración en Reimpact/platform
En el proyecto Reimpact/platform, hemos realizado una serie de mejoras técnicas enfocadas en robustecer la lógica de cálculo de periodos en los dashboards y asegurar una configuración de colas más consistente en entornos de prueba.
Cálculo de periodos en DashboardService
Se ha refactorizado la lógica encargada de calcular los rangos de fechas (tonelaje por periodo). El objetivo principal fue eliminar la ambigüedad en el manejo de filtros. Anteriormente, el sistema silenciaba ciertos errores y aplicaba valores predeterminados (como el uso de periodos anuales) sin una validación estricta de los parámetros de entrada.
La nueva implementación introdujo:
- Validación estricta: Ahora se verifica explícitamente la presencia y validez de las llaves
year,monthyperiodicity. Ante entradas inválidas, el método devuelve un arreglo vacío en lugar de intentar procesar fechas incorrectas. - Mejora de filtros: Se ajustó la lógica del rango de 12 meses para el caso
YEARLY, asegurando que no se dispare incorrectamente cuando solo están presentes filtros no temporales (como almacenes). - Documentación clara: Se han actualizado los bloques de documentación del código (PHPDoc) utilizando estructuras de arreglos (array-shapes), mejorando la legibilidad del contrato de datos para el método
calculateTonsPeriodDates.
Consistencia en la configuración de colas
Para mejorar la fiabilidad de las pruebas automatizadas, se ajustó el QueueOrchestrator. El sistema ahora detecta explícitamente si el entorno de ejecución es 'testing' para asignar las colas de manera predecible. Esto evita comportamientos inesperados durante el ciclo de integración continua y asegura que las pruebas operen sobre el entorno configurado correctamente.
Buenas prácticas en pruebas
Se han realizado ajustes en las pruebas unitarias para:
- Eliminar la sobreescritura manual: Se eliminó la asignación de valores arbitrarios en las fábricas de datos, permitiendo que el sistema utilice los valores predeterminados definidos en los enumeradores de categorías, alineándose con las reglas de validación de los recursos Nova.
- Eliminar redundancias: Se limpiaron las aserciones duplicadas en las pruebas del orquestador de colas para mantener un código de prueba más limpio y eficiente.