#!/usr/bin/env bash
# Run from the directory in which the pooled session was connected.
# Start each commit's server/Metro on a fresh T3 home with T3CODE_DEV_SEED=0,
# seed it with seed.mjs, load that Metro URL, and pair it with pair.mjs first.
set -euo pipefail
session=$1
surface=$2 # android, ios, or ipad
side=$3 # before or after
out=$4
scripts=$(cd -- "$(dirname -- "$0")" && pwd)
ad() { agent-device "$@" --session "$session"; }
capture() { python3 "$scripts/capture.py" "$session" "$out/$side-$surface-$1.png"; }
case "$surface" in
  android) ad click 'label="New thread"' --settle ;;
  ios) ad click 'label="New chat"' --settle ;;
  ipad) ad click 'label="New thread"' --settle ;;
esac
ad wait text 'Choose project'
if [[ "$surface" != ipad ]]; then capture picker; fi
if [[ "$surface" == android ]]; then
  ad click 'label="acme/widget, 2 workspaces"' --settle
else
  ad click 'label="acme/widget"' --settle
fi
ad fill 'label="Ask anything"' 'Draft for widget' --settle
if [[ "$surface" == ipad ]]; then
  ad click 'label="Widget thread, Done"' --settle
  capture sidebar
else
  if [[ "$surface" == android ]]; then
    ad click 'label="Navigate up"' --settle
  else
    ad click 'label="Back"' --settle
  fi
  capture draft
fi
if [[ "$surface" == android ]]; then
  ad click 'label="New thread"' --settle
  ad fill 'label="Ask anything"' 'Queued for widget' --settle
  ad settings airplane on
  ad settings wifi off
  ad wait 'label="Queue"'
  ad click 'label="Queue"' --settle
  ad click 'label="Navigate up"' --settle
  capture queued
fi
