Total: 5 archivos | ~43 pruebas | Cobertura estimada: 80% funcionalidad crítica
| # | Archivo | Pruebas | Prioridad | Estado |
|---|---|---|---|---|
| 1 | test-webservice-object-to-array.php |
9 | 🔴 MÁXIMA | ✅ |
| 2 | test-webservice-checkerrors.php |
8 | 🔴 MÁXIMA | ✅ |
| 3 | test-shipping-tcc-wc-validation.php |
6 | 🔴 MÁXIMA | ✅ |
| 4 | test-shipping-tcc-wc-data-products.php |
12 | 🔴 MUY ALTA | ✅ |
| 5 | test-method-shipping-calculate.php |
8 | 🔴 MUY ALTA | ✅ |
make test-criticalmake test# Solo WebService
make test-webservice
# Solo Shipping_Tcc_WC
make test-shippingmake coveragePor qué es crítico: Base de toda la conversión de respuestas SOAP.
Qué prueba:
- ✅ Conversión de stdClass simple a array
- ✅ Conversión de objetos anidados (múltiples niveles)
- ✅ Arrays de objetos
- ✅ Preservación de arrays normales
- ✅ Preservación de valores escalares (string, int, bool, null)
- ✅ Estructuras mixtas (objetos + arrays + escalares)
- ✅ Arrays vacíos
- ✅ Objetos vacíos
- ✅ Estructura real de respuesta TCC
Métodos testeados:
WebService::objectToArray()(privado, vía Reflection)
Por qué es crítico: Valida TODAS las respuestas de la API TCC.
Qué prueba:
- ✅ Exception con remesa vacía
- ✅ Exception con remesa null
- ✅ Exception con código de error != '0'
- ✅ Sin exception con código '0' (éxito)
- ✅ Sin exception sin remesa ni respuesta
- ✅ Priorización de mensajeinterno
- ✅ Mensaje por defecto si no hay mensajes
- ✅ Estructura de respuesta.codigo anidada
Métodos testeados:
WebService::checkErrors()(privado, vía Reflection)
Por qué es crítico: Previene checkout con productos sin dimensiones.
Qué prueba:
- ✅ Todos los productos con dimensiones válidas
- ✅ Algunos productos sin dimensiones
- ✅ Sin productos retorna válido
- ✅ Mensaje de error incluye nombres y IDs
- ✅ Valida peso, largo, ancho y alto
- ✅ Valida cart items y order items
Métodos testeados:
Shipping_Tcc_WC::validate_all_products_dimensions()(privado, vía Reflection)
Por qué es crítico: Procesa TODOS los productos del carrito/orden.
Qué prueba:
- ✅ Items vacíos retorna estructura vacía
- ✅ Validación falla lanza Exception
- ✅ Todos válidos retorna estructura correcta
- ✅ Calcula peso total correctamente
- ✅ Determina cuenta por peso > 5kg (paquetería)
- ✅ Determina cuenta por peso < 5kg (mensajería)
- ✅ Usa custom price cuando disponible
- ✅ Usa precio regular cuando no hay custom
- ✅ Calcula peso volumétrico
- ✅ Filtro shipping_tcc_data_products se aplica
- ✅ Maneja variaciones
- ✅ Salta productos inválidos
Métodos testeados:
Shipping_Tcc_WC::data_products()
Por qué es crítico: Función principal que el usuario ve en checkout.
Qué prueba:
- ✅ Destino válido en Colombia agrega rate
- ✅ Destino no Colombia no agrega rate
- ✅ Sin ciudad no agrega rate
- ✅ Liquidación null loguea error
- ✅ Liquidación con costo 0 loguea error
- ✅ Filtro shipping_tcc_woo_rate se aplica
- ✅ Rate tiene estructura correcta
- ✅ Debug mode loguea información
Métodos testeados:
WC_Shipping_Method_Shipping_Tcc_WC::calculate_shipping()WC_Shipping_Method_Shipping_Tcc_WC::is_valid_destination()WC_Shipping_Method_Shipping_Tcc_WC::has_valid_shipping_cost()WC_Shipping_Method_Shipping_Tcc_WC::add_shipping_rate()
export WP_TEST__DIR=/path/to/wordpress-tests-lib
export WP_PHPUNIT__DIR=/path/to/wp-phpunitLas pruebas usan la configuración en tests/wp-config.php:
define('DB_NAME', 'wordpress_test');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', '127.0.0.1:3307');| Componente | Líneas | Métodos | Branches |
|---|---|---|---|
| WebService | 85% | 90% | 80% |
| Shipping_Tcc_WC | 75% | 85% | 70% |
| Method_Shipping | 70% | 80% | 65% |
| TOTAL | 77% | 85% | 72% |
✅ WebService::objectToArray()
✅ WebService::checkErrors()
✅ Shipping_Tcc_WC::validate_all_products_dimensions()
✅ Shipping_Tcc_WC::data_products()
✅ WC_Shipping_Method_Shipping_Tcc_WC::calculate_shipping()
- Tests para generación de guías
- Tests para liquidación completa
- Tests para helpers de ciudades
- Flujos end-to-end completos
- Tests con WooCommerce real
- Security audit
- Performance benchmarks
Antes de pasar a Fase 2:
- ✅ Las 43 pruebas críticas pasan al 100%
- ✅ Cobertura > 75% en métodos críticos
- ✅ Sin warnings ni deprecated
- ✅ Tiempo ejecución < 10 segundos
Última actualización: Diciembre 12, 2025
Estado: ✅ Fase 1 Completada
Siguiente paso: Ejecutar make test-critical para validar