#!/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 ""