35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# e2e/run-remote-chrome.sh
|
|
# Resolve Chrome websocket endpoint from CHROME_HOST (host[:port]) or use CHROME_WS if provided.
|
|
# Then run e2e/validate-flow-remote-chrome.js with the resolved CHROME_WS env var.
|
|
set -eu
|
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT_DIR" || exit 1
|
|
if [ -n "${CHROME_WS:-}" ]; then
|
|
echo "Using provided CHROME_WS"
|
|
export CHROME_WS="$CHROME_WS"
|
|
else
|
|
if [ -z "${CHROME_HOST:-}" ]; then
|
|
echo "Error: set CHROME_HOST (host[:port]) or CHROME_WS (websocket url)" >&2
|
|
exit 2
|
|
fi
|
|
HOST="$CHROME_HOST"
|
|
# If port not present, default to 9222
|
|
if [[ "$HOST" != *":"* ]]; then
|
|
HOST="$HOST:9222"
|
|
fi
|
|
URL="http://${HOST}/json/version"
|
|
echo "Fetching websocket endpoint from $URL"
|
|
WS="$(curl -sS "$URL" | node -e "const s=fs.readFileSync(0,'utf8'); try{const j=JSON.parse(s); console.log(j.webSocketDebuggerUrl||'')}catch(e){console.error('failed parse json',e); process.exit(2)}")" || true
|
|
if [ -z "$WS" ]; then
|
|
echo "Failed to get webSocketDebuggerUrl from $URL" >&2
|
|
curl -sS "$URL" || true
|
|
exit 3
|
|
fi
|
|
export CHROME_WS="$WS"
|
|
echo "Resolved CHROME_WS=$CHROME_WS"
|
|
fi
|
|
# Run the validator
|
|
node e2e/validate-flow-remote-chrome.js
|
|
|