#!/bin/bash

# Script para ejecutar el test de CRUD de bots con dependencias
# Uso: ./run-bot-crud-test.sh [crud|cascade|both]

set -e

TEST_TYPE=${1:-"both"}

echo "🚀 Ejecutando test de CRUD de bots con dependencias..."
echo "Tipo de test: $TEST_TYPE"
echo ""

# Verificar que Node.js esté instalado
if ! command -v node &> /dev/null; then
    echo "❌ Node.js no está instalado o no está en el PATH"
    exit 1
fi

NODE_VERSION=$(node --version)
echo "✅ Node.js encontrado: $NODE_VERSION"

# Verificar que el archivo de test existe
if [ ! -f "test-bot-crud-with-dependencies.js" ]; then
    echo "❌ Archivo de test no encontrado: test-bot-crud-with-dependencies.js"
    exit 1
fi

# Configurar variables de entorno si no están definidas
export API_URL=${API_URL:-"http://localhost:3000/api"}
export TEST_EMAIL=${TEST_EMAIL:-"admin@test.com"}
export TEST_PASSWORD=${TEST_PASSWORD:-"K9#mX7$vL2@n"}

echo "🔧 API_URL configurado a: $API_URL"
echo "🔧 TEST_EMAIL configurado a: $TEST_EMAIL"
echo "🔧 TEST_PASSWORD configurado"
echo ""

# Ejecutar el test
echo "🏃 Ejecutando test..."
if node test-bot-crud-with-dependencies.js "$TEST_TYPE"; then
    echo ""
    echo "🎉 Test completado exitosamente!"
else
    echo ""
    echo "❌ Test falló"
    exit 1
fi

echo ""
echo "📋 Tipos de test disponibles:"
echo "   - crud: Test de CRUD básico (verifica que el borrado falla con dependencias)"
echo "   - cascade: Test de borrado en cascada (después de aplicar la corrección)"
echo "   - both: Ambos tests (por defecto)"
echo ""
echo "💡 Ejemplos de uso:"
echo "   ./run-bot-crud-test.sh crud"
echo "   ./run-bot-crud-test.sh cascade"
echo "   ./run-bot-crud-test.sh both"
