#!/usr/bin/env bash
set -u

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

: "${E2E_RUN_ID:?Set E2E_RUN_ID to a unique marker}"
: "${E2E_SHIFT_DATE:?Set E2E_SHIFT_DATE}"

node scripts/start-authenticated-browser.mjs >/dev/null 2>&1 &
auth_pid=$!
status=0
cleanup() {
  npx midscene tests/web/scheduling-cross-app-cleanup.yaml || status=1
  kill "$auth_pid" 2>/dev/null || true
  rm -f .midscene-cdp-endpoint
  rm -f .midscene-workspace-url
  rm -f .midscene-schedule-url
}
trap cleanup EXIT

for _ in {1..60}; do
  [[ -s .midscene-cdp-endpoint ]] && break
  kill -0 "$auth_pid" 2>/dev/null || { echo "Authenticated browser failed to start"; exit 1; }
  sleep 1
done
[[ -s .midscene-cdp-endpoint ]] || { echo "Timed out waiting for authenticated browser"; exit 1; }
export MIDSCENE_CDP_ENDPOINT="$(<.midscene-cdp-endpoint)"
export BK_WEB_WORKSPACE_URL="$(<.midscene-workspace-url)"
export BK_SCHEDULE_URL="$(<.midscene-schedule-url)"

npx midscene tests/web/scheduling-cross-app-setup.yaml || status=1
if [[ $status -eq 0 ]]; then
  node scripts/login-ios.mjs com.buyerkiosk.buyerkioskTeam || status=1
  npx midscene tests/ios-team/scheduling-draft-hidden.yaml || status=1
  npx midscene tests/web/scheduling-cross-app-publish.yaml || status=1
  npx midscene tests/ios-team/scheduling-published-visible.yaml || status=1
  node scripts/login-ios.mjs com.v2ts.BuyerKiosk || status=1
  npx midscene tests/ios-live/scheduling-manager.yaml || status=1
fi

exit "$status"
