#!/bin/bash
########################################
# Master Test Suite - Run All Fix Tests
# Tests all 3 fixes before deployment
########################################

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"

cd "$PROJECT_ROOT" || exit 1

TOTAL_TESTS=0
PASSED_TESTS=0
FAILED_TESTS=0

echo "╔══════════════════════════════════════════════════════════════╗"
echo "║  🧪 MASTER TEST SUITE - EMAIL & CRON FIX VERIFICATION      ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""

# Function to run a test
run_test() {
    local test_name=$1
    local test_script=$2

    TOTAL_TESTS=$((TOTAL_TESTS + 1))

    echo ""
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
    echo "🧪 TEST $TOTAL_TESTS: $test_name"
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

    if bash "$test_script"; then
        PASSED_TESTS=$((PASSED_TESTS + 1))
        echo "✅ TEST $TOTAL_TESTS PASSED: $test_name"
    else
        FAILED_TESTS=$((FAILED_TESTS + 1))
        echo "❌ TEST $TOTAL_TESTS FAILED: $test_name"
        return 1
    fi
}

# Run all tests
run_test "Queue Monitor Service Fix" "scripts/test-queue-monitor-service.sh" || true
run_test "Health Check Monitor Fix" "scripts/test-health-check-monitor.sh" || true
run_test "BCC Email Fix (Local)" "scripts/test-bcc-fix.sh" || true

echo ""
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║  📊 TEST SUMMARY                                             ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
echo "   Total Tests:  $TOTAL_TESTS"
echo "   ✅ Passed:    $PASSED_TESTS"
echo "   ❌ Failed:    $FAILED_TESTS"
echo ""

if [ $FAILED_TESTS -eq 0 ]; then
    echo "╔══════════════════════════════════════════════════════════════╗"
    echo "║  ✅ ALL TESTS PASSED - READY FOR DEPLOYMENT                 ║"
    echo "╚══════════════════════════════════════════════════════════════╝"
    echo ""
    echo "🎯 NEXT STEPS:"
    echo ""
    echo "   1. COMMIT CHANGES TO GIT:"
    echo "      git add -A"
    echo "      git commit -m 'fix: BCC archiving, health-check tinker, queue monitor TypeError'"
    echo ""
    echo "   2. PUSH TO DEV BRANCH:"
    echo "      git push origin dev"
    echo ""
    echo "   3. TEST ON DEV SERVER (REAL EMAIL):"
    echo "      ssh globalgala@glo.globalgala.com"
    echo "      cd ~/public_html/2026_backend_dev"
    echo "      git pull origin dev"
    echo "      php artisan cache:clear && php artisan config:clear"
    echo "      ./scripts/start-queue-worker.sh"
    echo "      # Test email with real SMTP"
    echo "      # Check archive@globalgala.com inbox for BCC"
    echo ""
    echo "   4. IF DEV TESTS PASS → DEPLOY TO PROD:"
    echo "      cd ~/public_html/2026_backend_prod"
    echo "      ./scripts/deploy-dev.sh"
    echo ""
    exit 0
else
    echo "╔══════════════════════════════════════════════════════════════╗"
    echo "║  ❌ SOME TESTS FAILED - DO NOT DEPLOY                       ║"
    echo "╚══════════════════════════════════════════════════════════════╝"
    echo ""
    echo "⚠️  Fix failing tests before deploying!"
    echo ""
    exit 1
fi
