#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PHP_BIN="${PHP_BIN:-php}"
HOST="${TEST_API_HOST:-127.0.0.1}"
PORT="${TEST_API_PORT:-8000}"
BASE_URL="${TEST_API_BASE_URL:-http://${HOST}:${PORT}}"

ENV_FILE="$ROOT_DIR/tests/api.env"
if [[ -f "$ENV_FILE" ]]; then
  set -a
  # shellcheck disable=SC1090
  source "$ENV_FILE"
  set +a
fi

export TEST_API_BASE_URL="$BASE_URL"

if ! command -v "$PHP_BIN" >/dev/null 2>&1; then
  echo "PHP introuvable (PHP_BIN=$PHP_BIN)." >&2
  exit 1
fi

pushd "$ROOT_DIR" >/dev/null

"$PHP_BIN" -S "$HOST:$PORT" -t www >/tmp/booking-php-server.log 2>&1 &
PHP_PID=$!

cleanup() {
  kill "$PHP_PID" >/dev/null 2>&1 || true
}
trap cleanup EXIT

# Attendre que le serveur réponde
for i in {1..20}; do
  if curl -s "$BASE_URL" >/dev/null 2>&1; then
    break
  fi
  sleep 0.2
done

if ! curl -s "$BASE_URL" >/dev/null 2>&1; then
  echo "Le serveur PHP n'a pas démarré (voir /tmp/booking-php-server.log)." >&2
  exit 1
fi

echo "Serveur PHP démarré sur $BASE_URL"

./vendor/bin/phpunit tests/Api

popd >/dev/null
