Spaces:
Running
Running
| # E2E Test Runner Script | |
| set -e | |
| echo "π Starting E2E Test Suite for PromptAid Vision" | |
| # Colors for output | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| NC='\033[0m' # No Color | |
| # Function to print colored output | |
| print_status() { | |
| echo -e "${GREEN}[INFO]${NC} $1" | |
| } | |
| print_warning() { | |
| echo -e "${YELLOW}[WARNING]${NC} $1" | |
| } | |
| print_error() { | |
| echo -e "${RED}[ERROR]${NC} $1" | |
| } | |
| # Check if Docker is running | |
| if ! docker info > /dev/null 2>&1; then | |
| print_error "Docker is not running. Please start Docker and try again." | |
| exit 1 | |
| fi | |
| # Check if docker-compose is available | |
| if ! command -v docker-compose &> /dev/null; then | |
| print_error "docker-compose is not installed. Please install it and try again." | |
| exit 1 | |
| fi | |
| # Create test results directory | |
| mkdir -p test-results/videos | |
| mkdir -p test-results/screenshots | |
| mkdir -p test-results/har | |
| print_status "Setting up E2E test environment..." | |
| # Start the E2E environment | |
| print_status "Starting services with docker-compose..." | |
| docker-compose -f docker-compose.e2e.yml up -d --build | |
| # Wait for services to be ready | |
| print_status "Waiting for services to be ready..." | |
| sleep 30 | |
| # Check if services are healthy | |
| print_status "Checking service health..." | |
| # Check backend health | |
| for i in {1..30}; do | |
| if curl -f http://localhost:7860/health > /dev/null 2>&1; then | |
| print_status "Backend is healthy" | |
| break | |
| fi | |
| if [ $i -eq 30 ]; then | |
| print_error "Backend health check failed" | |
| exit 1 | |
| fi | |
| sleep 2 | |
| done | |
| # Check frontend health | |
| for i in {1..30}; do | |
| if curl -f http://localhost:3000 > /dev/null 2>&1; then | |
| print_status "Frontend is healthy" | |
| break | |
| fi | |
| if [ $i -eq 30 ]; then | |
| print_error "Frontend health check failed" | |
| exit 1 | |
| fi | |
| sleep 2 | |
| done | |
| print_status "All services are ready!" | |
| # Install Python dependencies | |
| print_status "Installing Python dependencies..." | |
| pip install -r requirements.txt | |
| # Install Playwright browsers | |
| print_status "Installing Playwright browsers..." | |
| playwright install | |
| # Run the tests | |
| print_status "Running E2E tests..." | |
| pytest -m e2e -v --tb=short | |
| # Capture test results | |
| TEST_EXIT_CODE=$? | |
| # Generate test report | |
| print_status "Generating test report..." | |
| if [ -d "test-results" ]; then | |
| print_status "Test results available in test-results/ directory" | |
| fi | |
| # Cleanup | |
| print_status "Cleaning up..." | |
| docker-compose -f docker-compose.e2e.yml down -v | |
| # Exit with test result | |
| if [ $TEST_EXIT_CODE -eq 0 ]; then | |
| print_status "β E2E tests completed successfully!" | |
| else | |
| print_error "β E2E tests failed!" | |
| fi | |
| exit $TEST_EXIT_CODE | |