#!/bin/bash

# STT 서비스 통합 테스트 실행 스크립트

set -e

echo "🚀 STT 서비스 통합 테스트 시작"

# 1. Docker 테스트 환경 시작
echo "📦 Docker 테스트 환경 시작..."
docker-compose -f docker-compose.test.yml up -d

# 2. 서비스 준비 대기
echo "⏳ 서비스 준비 대기 중..."
sleep 15

# 3. 데이터베이스 준비 확인
echo "🔍 PostgreSQL 연결 확인..."
until docker-compose -f docker-compose.test.yml exec -T postgres-test pg_isready -U testuser -d sttdb_test; do
  echo "PostgreSQL 준비 중..."
  sleep 2
done

# 4. Redis 연결 확인
echo "🔍 Redis 연결 확인..."
until docker-compose -f docker-compose.test.yml exec -T redis-test redis-cli -a testpass ping | grep PONG; do
  echo "Redis 준비 중..."
  sleep 2
done

# 5. 통합 테스트 실행
echo "🧪 통합 테스트 실행..."
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-23.0.2.jdk/Contents/Home
./gradlew :stt:test -Dspring.profiles.active=integration-test

# 6. 결과 출력
if [ $? -eq 0 ]; then
    echo "✅ 통합 테스트 성공!"
else
    echo "❌ 통합 테스트 실패!"
fi

# 7. Docker 환경 정리 (선택)
read -p "Docker 테스트 환경을 정리하시겠습니까? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "🧹 Docker 테스트 환경 정리 중..."
    docker-compose -f docker-compose.test.yml down -v
    echo "✅ 정리 완료"
fi