#!/bin/bash # 🧪 Veza Platform - Test Complet # =============================== echo "🧪 Test complet de Veza Platform" echo "================================" echo "" # Couleurs pour l'affichage RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Fonction pour afficher les résultats print_result() { if [ $1 -eq 0 ]; then echo -e "${GREEN}✅ $2${NC}" else echo -e "${RED}❌ $2${NC}" fi } print_info() { echo -e "${BLUE}ℹ️ $1${NC}" } print_warning() { echo -e "${YELLOW}⚠️ $1${NC}" } # Test 1: Vérifier que tous les services sont démarrés echo "🔍 Test 1: Vérification des services..." echo "----------------------------------------" # Backend API if curl -s http://localhost:8080/api/health > /dev/null; then print_result 0 "Backend API (port 8080)" else print_result 1 "Backend API (port 8080)" fi # Frontend Web if curl -s http://localhost:5176/ > /dev/null; then print_result 0 "Frontend Web (port 5176)" else print_result 1 "Frontend Web (port 5176)" fi # PostgreSQL if pg_isready -h localhost -p 5432 > /dev/null 2>&1; then print_result 0 "PostgreSQL (port 5432)" else print_result 1 "PostgreSQL (port 5432)" fi # Redis if redis-cli ping > /dev/null 2>&1; then print_result 0 "Redis (port 6379)" else print_result 1 "Redis (port 6379)" fi # Chat Server if curl -s http://localhost:3001/health > /dev/null 2>&1; then print_result 0 "Chat Server (port 3001)" else print_result 1 "Chat Server (port 3001)" fi echo "" # Test 2: Vérifier les réponses API echo "🔍 Test 2: Vérification des réponses API..." echo "--------------------------------------------" # Test de l'endpoint health HEALTH_RESPONSE=$(curl -s http://localhost:8080/api/health) if echo "$HEALTH_RESPONSE" | grep -q "healthy"; then print_result 0 "Endpoint /api/health" echo " Réponse: $(echo "$HEALTH_RESPONSE" | jq -r '.status' 2>/dev/null || echo "JSON invalide")" else print_result 1 "Endpoint /api/health" fi # Test de l'endpoint users (si disponible) if curl -s http://localhost:8080/api/users > /dev/null 2>&1; then print_result 0 "Endpoint /api/users" else print_warning "Endpoint /api/users non disponible" fi echo "" # Test 3: Vérifier l'interface web echo "🔍 Test 3: Vérification de l'interface web..." echo "---------------------------------------------" # Vérifier que la page se charge WEB_CONTENT=$(curl -s http://localhost:5176/) if echo "$WEB_CONTENT" | grep -q "Veza Platform"; then print_result 0 "Page d'accueil contient 'Veza Platform'" else print_result 1 "Page d'accueil ne contient pas 'Veza Platform'" fi # Vérifier que React se charge if echo "$WEB_CONTENT" | grep -q "react"; then print_result 0 "React détecté dans la page" else print_result 1 "React non détecté dans la page" fi echo "" # Test 4: Vérifier la base de données echo "🔍 Test 4: Vérification de la base de données..." echo "------------------------------------------------" # Test de connexion PostgreSQL if psql -h localhost -U veza_user -d veza_local -c "SELECT 1;" > /dev/null 2>&1; then print_result 0 "Connexion PostgreSQL réussie" else print_warning "Connexion PostgreSQL échouée (vérifiez les credentials)" fi # Test de connexion Redis if redis-cli ping | grep -q "PONG"; then print_result 0 "Connexion Redis réussie" else print_result 1 "Connexion Redis échouée" fi echo "" # Test 5: Vérifier les processus en cours echo "🔍 Test 5: Vérification des processus..." echo "----------------------------------------" # Vérifier les processus Node.js NODE_PROCESSES=$(ps aux | grep -E "node.*vite" | grep -v grep | wc -l) if [ $NODE_PROCESSES -gt 0 ]; then print_result 0 "Processus Vite détectés ($NODE_PROCESSES)" else print_result 1 "Aucun processus Vite détecté" fi # Vérifier les processus Go GO_PROCESSES=$(ps aux | grep -E "server" | grep -v grep | wc -l) if [ $GO_PROCESSES -gt 0 ]; then print_result 0 "Processus Backend détectés ($GO_PROCESSES)" else print_result 1 "Aucun processus Backend détecté" fi # Vérifier les processus Electron ELECTRON_PROCESSES=$(ps aux | grep -E "electron" | grep -v grep | wc -l) if [ $ELECTRON_PROCESSES -gt 0 ]; then print_result 0 "Processus Electron détectés ($ELECTRON_PROCESSES)" else print_warning "Aucun processus Electron détecté (desktop non lancé)" fi echo "" # Test 6: Vérifier les ports utilisés echo "🔍 Test 6: Vérification des ports..." echo "------------------------------------" PORTS_TO_CHECK=(5176 8080 5432 6379 3001) for port in "${PORTS_TO_CHECK[@]}"; do if lsof -i :$port > /dev/null 2>&1; then print_result 0 "Port $port ouvert" else print_result 1 "Port $port fermé" fi done echo "" # Test 7: Vérifier les fichiers de configuration echo "🔍 Test 7: Vérification des fichiers de configuration..." echo "-------------------------------------------------------" # Vérifier les fichiers essentiels FILES_TO_CHECK=( "veza-frontend/package.json" "veza-backend-api/go.mod" "veza-desktop/package.json" "docker-compose.production.yml" "start-veza.sh" "stop-veza.sh" ) for file in "${FILES_TO_CHECK[@]}"; do if [ -f "$file" ]; then print_result 0 "Fichier $file présent" else print_result 1 "Fichier $file manquant" fi done echo "" # Résumé final echo "📊 Résumé des tests" echo "===================" TOTAL_TESTS=0 PASSED_TESTS=0 # Compter les tests réussis (lignes avec ✅) PASSED_TESTS=$(grep -c "✅" <<< "$(tail -n +50 $0)") TOTAL_TESTS=$(grep -c "Test [0-9]" <<< "$(tail -n +50 $0)") echo "Tests réussis: $PASSED_TESTS" echo "Tests échoués: $((TOTAL_TESTS - PASSED_TESTS))" echo "" if [ $PASSED_TESTS -eq $TOTAL_TESTS ]; then echo -e "${GREEN}🎉 Tous les tests sont passés ! Veza Platform est opérationnel.${NC}" echo "" echo "📱 Accès aux applications :" echo " 🌐 Web App: http://localhost:5176" echo " 🖥️ Desktop: ./start-desktop.sh" echo "" echo "🔧 Services actifs :" echo " ✅ Backend API: http://localhost:8080" echo " ✅ Frontend: http://localhost:5176" echo " ✅ PostgreSQL: localhost:5432" echo " ✅ Redis: localhost:6379" echo " ✅ Chat Server: localhost:3001" else echo -e "${YELLOW}⚠️ Certains tests ont échoué. Vérifiez les services manquants.${NC}" echo "" echo "🔧 Commandes de dépannage :" echo " - Redémarrer: ./start-veza.sh" echo " - Arrêter: ./stop-veza.sh" echo " - Logs: tail -f logs/*.log" fi echo "" echo "🧪 Test complet terminé"