94 lines
3.1 KiB
Bash
94 lines
3.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Script de test lab pour veza-chat-server
|
||
|
|
# Utilise la vraie base de données PostgreSQL veza_lab
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Couleurs
|
||
|
|
RED='\033[0;31m'
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
BLUE='\033[0;34m'
|
||
|
|
NC='\033[0m' # No Color
|
||
|
|
|
||
|
|
echo -e "${BLUE}🧪 TEST LAB - veza-chat-server${NC}"
|
||
|
|
echo "=================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Vérifier que VEZA_LAB_DSN est défini
|
||
|
|
if [ -z "${VEZA_LAB_DSN:-}" ]; then
|
||
|
|
echo -e "${RED}❌ ERREUR: VEZA_LAB_DSN n'est pas défini${NC}"
|
||
|
|
echo "Définissez-le avec:"
|
||
|
|
echo " export VEZA_LAB_DSN='postgres://veza:veza_password@localhost:5432/veza_lab?sslmode=disable'"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ VEZA_LAB_DSN est défini${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Exporter DATABASE_URL pour sqlx et l'application
|
||
|
|
if [[ "$VEZA_LAB_DSN" == *"?"* ]]; then
|
||
|
|
export DATABASE_URL="${VEZA_LAB_DSN}&options=-c%20search_path=chat"
|
||
|
|
else
|
||
|
|
export DATABASE_URL="${VEZA_LAB_DSN}?options=-c%20search_path=chat"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Vérifier la connexion à la base de données
|
||
|
|
echo -e "${BLUE}🔍 Vérification de la connexion à la base de données...${NC}"
|
||
|
|
# On vérifie aussi que le schema existe ou on le crée si besoin pour le test ?
|
||
|
|
# Le script de reset le fait. Ici on suppose que l'environnement est prêt ou on le prépare.
|
||
|
|
# Utilisons psql pour vérifier que le serveur répond.
|
||
|
|
if psql "$VEZA_LAB_DSN" -c "SELECT 1;" > /dev/null 2>&1; then
|
||
|
|
echo -e "${GREEN}✅ Connexion PostgreSQL réussie${NC}"
|
||
|
|
# S'assurer que le schema 'chat' existe pour les tests
|
||
|
|
psql "$VEZA_LAB_DSN" -c "CREATE SCHEMA IF NOT EXISTS chat;" > /dev/null
|
||
|
|
echo -e "${GREEN}✅ Schema 'chat' vérifié${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}❌ Impossible de se connecter à la base de données${NC}"
|
||
|
|
echo "Vérifiez que PostgreSQL est démarré et que la base veza_lab existe"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Appliquer les migrations
|
||
|
|
echo -e "${BLUE}📦 Application des migrations (Schema: chat)...${NC}"
|
||
|
|
if sqlx migrate run --database-url "$DATABASE_URL"; then
|
||
|
|
echo -e "${GREEN}✅ Migrations appliquées avec succès${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}❌ Erreur lors de l'application des migrations${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Vérifier que JWT_SECRET est défini
|
||
|
|
if [ -z "${JWT_SECRET:-}" ]; then
|
||
|
|
echo -e "${YELLOW}⚠️ JWT_SECRET n'est pas défini, génération d'un secret temporaire...${NC}"
|
||
|
|
export JWT_SECRET=$(openssl rand -base64 32)
|
||
|
|
echo -e "${GREEN}✅ JWT_SECRET généré: ${JWT_SECRET:0:20}...${NC}"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Configuration par défaut pour le lab
|
||
|
|
export CHAT_SERVER_PORT="${CHAT_SERVER_PORT:-8081}"
|
||
|
|
export CHAT_SERVER_HOST="${CHAT_SERVER_HOST:-0.0.0.0}"
|
||
|
|
export RUST_LOG="${RUST_LOG:-info}"
|
||
|
|
export RABBITMQ_ENABLE="${RABBITMQ_ENABLE:-false}"
|
||
|
|
|
||
|
|
echo -e "${BLUE}📋 Configuration:${NC}"
|
||
|
|
echo " DATABASE_URL: ${DATABASE_URL%%@*}@***"
|
||
|
|
echo " CHAT_SERVER_PORT: $CHAT_SERVER_PORT"
|
||
|
|
echo " CHAT_SERVER_HOST: $CHAT_SERVER_HOST"
|
||
|
|
echo " RUST_LOG: $RUST_LOG"
|
||
|
|
echo " RABBITMQ_ENABLE: $RABBITMQ_ENABLE"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ Environnement prêt pour le démarrage${NC}"
|
||
|
|
echo ""
|
||
|
|
echo -e "${YELLOW}Pour démarrer le serveur:${NC}"
|
||
|
|
echo " ./target/release/chat-server"
|
||
|
|
echo ""
|
||
|
|
echo -e "${YELLOW}Ou avec make:${NC}"
|
||
|
|
echo " make dev"
|
||
|
|
echo ""
|
||
|
|
|