#!/bin/bash
set -e  # Exit on error

# Function to check command exists
check_command() {
    if ! command -v $1 &> /dev/null; then
        echo "Error: $1 is required but not installed."
        exit 1
    fi
}

# Check required commands
check_command uv
check_command playwright

# Clean up any existing test data
echo "Cleaning up any existing test data..."
uv run manage.py cleanup_test_data || true

# Install Python dependencies
echo "Installing Python dependencies..."
uv pip install -r requirements.txt

# Install Playwright browsers
echo "Installing Playwright browsers..."
playwright install chromium firefox webkit

# Create test users
echo "Creating test users..."
uv run manage.py create_test_users

# Make cleanup script executable
chmod +x tests/e2e/cleanup.sh

echo "Setup complete! You can now:"
echo "1. Run all tests: pytest tests/e2e/"
echo "2. Run specific tests: pytest tests/e2e/test_auth.py"
echo "3. Run with specific browser: pytest --browser firefox tests/e2e/"
echo "4. Clean up test data: ./tests/e2e/cleanup.sh"