Files
cataRio/postgres/tests/test_all.sql
josedario87 cc3cf0da81 Refactorizar y mejorar suite de tests con validaciones robustas
Problemas resueltos:
- Eliminada dependencia de UUIDs hardcodeados en tests
- Agregadas validaciones específicas de valores esperados
- Implementado cleanup automático de datos de test

Cambios principales:

Tests organizados por categoría (7 archivos nuevos):
- test_structure.sql: 8 tests de estructura de BD
- test_constraints.sql: 6 tests de validaciones
- test_triggers.sql: 3 tests de triggers automáticos
- test_queries.sql: 5 tests de queries típicas
- test_functions.sql: 3 tests de funciones auxiliares
- test_edge_cases.sql: 7 tests de casos límite
- test_indexes.sql: 6 tests de uso de índices

Mejoras implementadas:
- Cada test genera sus propios datos dinámicamente
- Tests usan bloques DO $$ con UUIDs generados
- Validaciones específicas con valores esperados
- Cleanup automático al finalizar cada test
- Tests de casos edge (arrays vacíos, NULL, límites)
- Verificación de uso de índices con EXPLAIN

test_all.sql actualizado:
- Ahora ejecuta todos los archivos organizados
- Total: ~38 tests independientes y robustos
- Progreso visual por categoría
- ASCII art y mejor presentación

Todos los tests verificados y funcionando correctamente
2025-10-17 17:35:34 -06:00

139 lines
5.0 KiB
PL/PgSQL

-- ============================================
-- rioCata - Suite Completa de Tests
-- ============================================
-- Ejecuta todos los tests organizados por categoría
-- ============================================
\echo ''
\echo '██████╗ ██╗ ██████╗ ██████╗ █████╗ ████████╗ █████╗ '
\echo '██╔══██╗██║██╔═══██╗██╔════╝██╔══██╗╚══██╔══╝██╔══██╗'
\echo '██████╔╝██║██║ ██║██║ ███████║ ██║ ███████║'
\echo '██╔══██╗██║██║ ██║██║ ██╔══██║ ██║ ██╔══██║'
\echo '██║ ██║██║╚██████╔╝╚██████╗██║ ██║ ██║ ██║ ██║'
\echo '╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝'
\echo ''
\echo '=========================================='
\echo 'Suite Completa de Tests - rioCata'
\echo '=========================================='
\echo ''
\echo 'Esta suite ejecuta todos los tests organizados en categorías:'
\echo ' 1. Estructura de Base de Datos'
\echo ' 2. Constraints y Validaciones'
\echo ' 3. Triggers Automáticos'
\echo ' 4. Queries Típicas'
\echo ' 5. Funciones Auxiliares'
\echo ' 6. Casos Límite (Edge Cases)'
\echo ' 7. Uso de Índices'
\echo ''
\echo 'Iniciando tests...'
\echo ''
-- ============================================
-- 1. Tests de Estructura
-- ============================================
\i postgres/tests/test_structure.sql
\echo ''
\echo '=========================================='
\echo '1/7 Estructura completada ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 2. Tests de Constraints
-- ============================================
\i postgres/tests/test_constraints.sql
\echo ''
\echo '=========================================='
\echo '2/7 Constraints completados ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 3. Tests de Triggers
-- ============================================
\i postgres/tests/test_triggers.sql
\echo ''
\echo '=========================================='
\echo '3/7 Triggers completados ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 4. Tests de Queries
-- ============================================
\i postgres/tests/test_queries.sql
\echo ''
\echo '=========================================='
\echo '4/7 Queries completadas ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 5. Tests de Funciones
-- ============================================
\i postgres/tests/test_functions.sql
\echo ''
\echo '=========================================='
\echo '5/7 Funciones completadas ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 6. Tests de Edge Cases
-- ============================================
\i postgres/tests/test_edge_cases.sql
\echo ''
\echo '=========================================='
\echo '6/7 Edge Cases completados ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- 7. Tests de Índices
-- ============================================
\i postgres/tests/test_indexes.sql
\echo ''
\echo '=========================================='
\echo '7/7 Índices completados ✓'
\echo '=========================================='
\echo ''
-- ============================================
-- Resumen Final
-- ============================================
\echo ''
\echo '╔════════════════════════════════════════╗'
\echo '║ SUITE COMPLETA DE TESTS FINALIZADA ║'
\echo '╚════════════════════════════════════════╝'
\echo ''
\echo 'Categorías ejecutadas:'
\echo ' ✓ Estructura (8 tests)'
\echo ' ✓ Constraints (6 tests)'
\echo ' ✓ Triggers (3 tests)'
\echo ' ✓ Queries (5 tests)'
\echo ' ✓ Funciones (3 tests)'
\echo ' ✓ Edge Cases (7 tests)'
\echo ' ✓ Índices (6 tests)'
\echo ''
\echo 'Total: ~38 tests ejecutados'
\echo ''
\echo 'Para ejecutar categorías individuales:'
\echo ' \\i postgres/tests/test_structure.sql'
\echo ' \\i postgres/tests/test_constraints.sql'
\echo ' \\i postgres/tests/test_triggers.sql'
\echo ' \\i postgres/tests/test_queries.sql'
\echo ' \\i postgres/tests/test_functions.sql'
\echo ' \\i postgres/tests/test_edge_cases.sql'
\echo ' \\i postgres/tests/test_indexes.sql'
\echo ''
\echo 'Para ver queries de ejemplo:'
\echo ' \\i postgres/tests/example_queries.sql'
\echo ''