268 lines
12 KiB
Bash
268 lines
12 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# Script de test pour Phase 3bis : Frontend + Stream Server
|
|||
|
|
# Usage: ./scripts/test-phase-3bis.sh
|
|||
|
|
|
|||
|
|
set -e # Exit on error
|
|||
|
|
|
|||
|
|
echo "═══════════════════════════════════════════════════════════"
|
|||
|
|
echo "🧪 PHASE 3BIS - TESTS FRONTEND & STREAM SERVER"
|
|||
|
|
echo "═══════════════════════════════════════════════════════════"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# Couleurs pour output
|
|||
|
|
RED='\033[0;31m'
|
|||
|
|
GREEN='\033[0;32m'
|
|||
|
|
YELLOW='\033[1;33m'
|
|||
|
|
NC='\033[0m' # No Color
|
|||
|
|
|
|||
|
|
# Répertoire du projet
|
|||
|
|
PROJECT_DIR="/home/senke/Documents/veza-full-stack"
|
|||
|
|
cd "$PROJECT_DIR"
|
|||
|
|
|
|||
|
|
echo "📍 Répertoire : $(pwd)"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 1 : REBUILD FRONTEND LOCAL (optionnel, recommandé pour debug)
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 1 : Rebuild Frontend (local)"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
read -p "Voulez-vous rebuilder le frontend en local ? (y/N) " -n 1 -r
|
|||
|
|
echo
|
|||
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|||
|
|
echo "🔨 Rebuild frontend avec npm..."
|
|||
|
|
chmod +x scripts/rebuild-frontend.sh
|
|||
|
|
./scripts/rebuild-frontend.sh
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}✅ Frontend rebuildé${NC}"
|
|||
|
|
else
|
|||
|
|
echo "⏭️ Skip rebuild local (sera fait dans docker build)"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 2 : ARRÊT COMPLET
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 2 : Arrêt de tous les conteneurs"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
docker compose down -v
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}✅ Conteneurs arrêtés${NC}"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 3 : REBUILD DOCKER (SANS CACHE)
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 3 : Rebuild Docker (frontend + stream-server)"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
echo "🔨 Build frontend (sans cache)..."
|
|||
|
|
docker compose build --no-cache frontend
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "🔨 Build stream-server (sans cache)..."
|
|||
|
|
docker compose build --no-cache stream-server
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}✅ Images Docker rebuildées${NC}"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 4 : DÉMARRAGE COMPLET
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 4 : Démarrage de tous les services"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
docker compose up -d --build
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}✅ Services démarrés${NC}"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 5 : ATTENTE HEALTHCHECK (90 secondes)
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 5 : Attente healthchecks (90s)"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
echo "⏳ Attente de 90 secondes pour les healthchecks..."
|
|||
|
|
for i in {90..1}; do
|
|||
|
|
echo -ne "\r⏱️ $i secondes restantes... "
|
|||
|
|
sleep 1
|
|||
|
|
done
|
|||
|
|
echo -e "\n"
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 6 : VÉRIFICATION STATUS
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 6 : Vérification du statut des conteneurs"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
docker compose ps
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# Vérifier individuellement chaque service
|
|||
|
|
echo "📊 Vérification individuelle :"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# Backend
|
|||
|
|
if docker compose ps backend-api | grep -q "healthy"; then
|
|||
|
|
echo -e " ${GREEN}✅ backend-api : HEALTHY${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ backend-api : NOT HEALTHY${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# Chat
|
|||
|
|
if docker compose ps chat-server | grep -q "healthy"; then
|
|||
|
|
echo -e " ${GREEN}✅ chat-server : HEALTHY${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ chat-server : NOT HEALTHY${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# Stream
|
|||
|
|
if docker compose ps stream-server | grep -q "healthy"; then
|
|||
|
|
echo -e " ${GREEN}✅ stream-server : HEALTHY${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${YELLOW}⚠️ stream-server : NOT HEALTHY YET (check logs)${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# Frontend
|
|||
|
|
if docker compose ps frontend | grep -q "Up"; then
|
|||
|
|
if docker compose ps frontend | grep -q "healthy"; then
|
|||
|
|
echo -e " ${GREEN}✅ frontend : HEALTHY${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${YELLOW}⚠️ frontend : UP but not healthy yet${NC}"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ frontend : NOT RUNNING${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 7 : LOGS DÉTAILLÉS
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 7 : Logs détaillés (dernières 80 lignes)"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "──────────────────────────────────────────────────────────"
|
|||
|
|
echo "📋 Stream Server Logs"
|
|||
|
|
echo "──────────────────────────────────────────────────────────"
|
|||
|
|
docker logs --tail=80 veza-stream-server-local
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "──────────────────────────────────────────────────────────"
|
|||
|
|
echo "📋 Frontend Logs"
|
|||
|
|
echo "──────────────────────────────────────────────────────────"
|
|||
|
|
docker logs --tail=80 veza-frontend-local
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 8 : TESTS CURL
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "ÉTAPE 8 : Tests HTTP"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "1️⃣ Backend API Health"
|
|||
|
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/health | grep -q "200"; then
|
|||
|
|
echo -e " ${GREEN}✅ http://localhost:8080/health → 200 OK${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ http://localhost:8080/health → FAILED${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "2️⃣ Stream Server Health"
|
|||
|
|
STREAM_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8082/health)
|
|||
|
|
if [ "$STREAM_STATUS" = "200" ]; then
|
|||
|
|
echo -e " ${GREEN}✅ http://localhost:8082/health → 200 OK${NC}"
|
|||
|
|
echo " 📄 Response:"
|
|||
|
|
curl -s http://localhost:8082/health | jq '.' 2>/dev/null || curl -s http://localhost:8082/health
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ http://localhost:8082/health → $STREAM_STATUS${NC}"
|
|||
|
|
echo " 🔍 Tentative avec curl -v :"
|
|||
|
|
curl -v http://localhost:8082/health 2>&1 | tail -20
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "3️⃣ Frontend Health"
|
|||
|
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost:5176/health | grep -q "200"; then
|
|||
|
|
echo -e " ${GREEN}✅ http://localhost:5176/health → 200 OK${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ http://localhost:5176/health → FAILED${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "4️⃣ Frontend Homepage"
|
|||
|
|
FRONTEND_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5176/)
|
|||
|
|
if [ "$FRONTEND_STATUS" = "200" ]; then
|
|||
|
|
echo -e " ${GREEN}✅ http://localhost:5176/ → 200 OK${NC}"
|
|||
|
|
echo " 📄 Contenu (premiers 200 chars) :"
|
|||
|
|
curl -s http://localhost:5176/ | head -c 200
|
|||
|
|
echo ""
|
|||
|
|
else
|
|||
|
|
echo -e " ${RED}❌ http://localhost:5176/ → $FRONTEND_STATUS${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "5️⃣ Frontend Proxy /api"
|
|||
|
|
PROXY_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5176/api/v1/health)
|
|||
|
|
if [ "$PROXY_STATUS" = "200" ]; then
|
|||
|
|
echo -e " ${GREEN}✅ http://localhost:5176/api/v1/health → 200 OK (proxy OK)${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e " ${YELLOW}⚠️ http://localhost:5176/api/v1/health → $PROXY_STATUS${NC}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
# ============================================================================
|
|||
|
|
# ÉTAPE 9 : RÉSUMÉ
|
|||
|
|
# ============================================================================
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "📊 RÉSUMÉ PHASE 3BIS"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "Services démarrés :"
|
|||
|
|
docker compose ps --format "table {{.Name}}\t{{.Status}}" | head -10
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "Prochaines actions :"
|
|||
|
|
echo ""
|
|||
|
|
echo " Si tout est ✅ HEALTHY :"
|
|||
|
|
echo " → Ouvrir http://localhost:5176 dans le navigateur"
|
|||
|
|
echo " → Tester login/register"
|
|||
|
|
echo " → Passer à Phase 4 (tests E2E)"
|
|||
|
|
echo ""
|
|||
|
|
echo " Si frontend ❌ ou stream-server ❌ :"
|
|||
|
|
echo " → Consulter docs/PHASE_3BIS_CORRECTION_GUIDE.md"
|
|||
|
|
echo " → Vérifier les logs détaillés ci-dessus"
|
|||
|
|
echo " → Exécuter les commandes de debugging"
|
|||
|
|
echo ""
|
|||
|
|
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
echo "✅ Tests Phase 3bis terminés"
|
|||
|
|
echo "════════════════════════════════════════════════════════════"
|
|||
|
|
|