Saltar al contenido principal

Testing

Guía de testing del backend.

Tests Disponibles

  • 1000+ tests pasando (incluyendo 282 tests de GHL v3.0)
  • Tests de endpoints
  • Tests de servicios
  • Tests de integraciones
  • Tests de seguridad

Regresiones recientes de pagos y milestones (2026-02)

Se añadieron tests para evitar que reaparezcan bugs ya corregidos en pagos/milestones:

  • backend/tests/unit/test_payment_service_milestone_validation.py
    • Verifica normalización de múltiples hitos en awaiting_payment.
    • Verifica caso estable con un único awaiting_payment.
  • backend/tests/unit/test_webhook_service_milestone_payment.py
    • Verifica payload de milestone_payment_released y registro success en GHLSyncLog.
    • Verifica fallback no bloqueante y registro failed si el webhook ERP falla.
  • backend/tests/unit/test_notification_enum_db_sync.py
    • Smoke test de persistencia de enums de notificaciones en BD para detectar desalineaciones entre enum Python y PostgreSQL.

Comando usado en CI/local Docker para esta batería:

./scripts/test_backend.sh tests/unit/test_payment_service_milestone_validation.py tests/unit/test_webhook_service_milestone_payment.py tests/unit/test_notification_enum_db_sync.py -v

Tests de Imágenes de Perfil

Archivo: backend/tests/endpoints/test_profiles_admin.py

Clase: TestProfilePictureUpload

Los tests verifican:

  • Subida exitosa de imágenes válidas (JPEG, PNG, WebP)
  • Validación de tipo de archivo (rechaza tipos inválidos)
  • Validación de tamaño máximo (2MB)
  • Actualización correcta en la base de datos
  • Formato de ruta guardada (/api/uploads/profiles/{user_id}/{filename})
  • Eliminación de imágenes anteriores al subir nueva
  • Permisos de admin para subir imágenes de otros usuarios

Nota: Los endpoints ahora usan el servicio centralizado ProfileImageService para validación, almacenamiento y normalización de rutas.

Nota sobre imágenes de prueba:

  • Los tests usan imágenes válidas creadas con helpers de test (tests/helpers/image_fixtures.py)
  • Esto asegura que funcionen tanto con validación básica como con Pillow
  • Las imágenes se generan automáticamente y son compatibles con la validación mejorada
  • Estado de validación: ✅ 16 tests pasando (15 passed + 1 skipped)
  • Los helpers detectan automáticamente si Pillow está disponible y crean imágenes reales

Ejecutar Tests

# Ejecutar todos los tests
./scripts/test_backend.sh

# Ejecutar tests específicos
./scripts/test_backend.sh tests/endpoints/projects/

Más Información

Consulta la Documentación de Testing para más detalles.