Shipping TCC Woo WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA
Shipping TCC Woo integra tu tienda WooCommerce con TCC
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/saulmoralespa/shipping-tcc-woo/releases/download/2.1.0/shipping-tcc-woo.zip🧪 Tests - Shipping TCC Woo
📋 Resumen de Pruebas Implementadas
✅ Fase 1 - Pruebas Críticas (COMPLETADO)
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 | ✅ |
🚀 Ejecutar Pruebas
Todas las pruebas críticas
make test-critical
Todas las pruebas
make test
Por componente
# Solo WebService
make test-webservice
# Solo Shipping_Tcc_WC
make test-shipping
Con cobertura
make coverage
📝 Descripción de Pruebas
1. test-webservice-object-to-array.php ⭐⭐⭐⭐⭐
Por 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)
2. test-webservice-checkerrors.php ⭐⭐⭐⭐⭐
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)
3. test-shipping-tcc-wc-validation.php ⭐⭐⭐⭐⭐
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)
4. test-shipping-tcc-wc-data-products.php ⭐⭐⭐⭐
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()
5. test-method-shipping-calculate.php ⭐⭐⭐⭐
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()
🔧 Configuración
Variables de Entorno
export WP_TEST__DIR=/path/to/wordpress-tests-lib
export WP_PHPUNIT__DIR=/path/to/wp-phpunit
Base de Datos de Prueba
Las 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');
📊 Cobertura Actual
Por Componente
| 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% |
Métodos Críticos (100% cobertura)
✅ WebService::objectToArray()
✅ WebService::checkErrors()
✅ Shipping_Tcc_WC::validate_all_products_dimensions()
✅ Shipping_Tcc_WC::data_products()
✅ WC_Shipping_Method_Shipping_Tcc_WC::calculate_shipping()
🎯 Próximas Fases
Fase 2 - Importante (Pendiente)
- Tests para generación de guías
- Tests para liquidación completa
- Tests para helpers de ciudades
Fase 3 - Integración (Pendiente)
- Flujos end-to-end completos
- Tests con WooCommerce real
Fase 4 - Seguridad y Performance (Pendiente)
- Security audit
- Performance benchmarks
📚 Recursos
✅ Criterios de Éxito
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
Releases
2 releases. Each count is every asset in that release; expand a row for the breakdown.