|
4 | 4 | set -e |
5 | 5 |
|
6 | 6 | SESSION_NAME="moltworker-e2e" |
7 | | -SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
8 | 7 |
|
9 | 8 | # Support running directly (not via cctr) |
10 | 9 | if [ -z "$CCTR_FIXTURE_DIR" ]; then |
11 | 10 | CCTR_FIXTURE_DIR="/tmp/e2e-cloud-manual" |
12 | 11 | fi |
13 | 12 |
|
14 | | -# Stop and delete any existing session |
15 | | -playwright-cli session-stop "$SESSION_NAME" >/dev/null 2>&1 || true |
16 | | -playwright-cli session-delete "$SESSION_NAME" >/dev/null 2>&1 || true |
17 | | - |
18 | 13 | # Build the args |
19 | 14 | GLOBAL_ARGS=("--session=$SESSION_NAME") |
20 | 15 |
|
21 | 16 | if [ "${PLAYWRIGHT_HEADED:-}" = "1" ] || [ "${PLAYWRIGHT_HEADED:-}" = "true" ]; then |
22 | 17 | GLOBAL_ARGS+=("--headed") |
23 | 18 | fi |
24 | 19 |
|
25 | | -# Open the browser to a blank page first |
26 | | -playwright-cli "${GLOBAL_ARGS[@]}" open "about:blank" >/dev/null 2>&1 & |
27 | | -sleep 2 |
| 20 | +# Open the browser to a blank page first (output to stderr to keep stdout clean for cctr) |
| 21 | +playwright-cli "${GLOBAL_ARGS[@]}" open "about:blank" >&2 & |
| 22 | +sleep 20 |
28 | 23 |
|
29 | 24 | # Read Access credentials |
30 | 25 | CF_ACCESS_CLIENT_ID=$(cat "$CCTR_FIXTURE_DIR/cf-access-client-id.txt" 2>/dev/null || echo "") |
31 | 26 | CF_ACCESS_CLIENT_SECRET=$(cat "$CCTR_FIXTURE_DIR/cf-access-client-secret.txt" 2>/dev/null || echo "") |
32 | 27 |
|
33 | 28 | if [ -n "$CF_ACCESS_CLIENT_ID" ] && [ -n "$CF_ACCESS_CLIENT_SECRET" ]; then |
34 | | - # Set extra HTTP headers for Access authentication |
| 29 | + # Set extra HTTP headers for Access authentication (output to stderr). |
| 30 | + # IMPORTANT: All subsequent navigation MUST use 'run-code page.goto()' instead of 'open', |
| 31 | + # because 'open' creates a new browser process which loses these headers. |
35 | 32 | playwright-cli "${GLOBAL_ARGS[@]}" run-code "async page => { |
36 | 33 | await page.context().setExtraHTTPHeaders({ |
37 | 34 | 'CF-Access-Client-Id': '$CF_ACCESS_CLIENT_ID', |
38 | 35 | 'CF-Access-Client-Secret': '$CF_ACCESS_CLIENT_SECRET' |
39 | 36 | }); |
40 | | - }" >/dev/null 2>&1 |
| 37 | + }" >&2 |
41 | 38 | fi |
42 | 39 |
|
| 40 | +sleep 1 # Let stderr flush before stdout |
43 | 41 | echo "ready" |
0 commit comments