Skip to content

fix(e2e): harden browser launch on macOS + dismiss overlays mid-checkout (#163 #165) - #166

Merged
JonasJesus42 merged 2 commits into
mainfrom
issue-163-v1
Jul 28, 2026
Merged

fix(e2e): harden browser launch on macOS + dismiss overlays mid-checkout (#163 #165)#166
JonasJesus42 merged 2 commits into
mainfrom
issue-163-v1

Conversation

@JonasJesus42

@JonasJesus42 JonasJesus42 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • parity e2e hangs at browser launch (exit 144) on macOS with localhost #163parity e2e hung indefinitely at "Lançando browser" on macOS (exit 144 = watchdog SIGKILL after 3 min). Added --disable-setuid-sandbox and --no-zygote Chromium flags to prevent zygote/setuid sandbox deadlocks in macOS headless. Also wrapped chromium.launch() in a JS-level Promise.race with a 35 s backstop so the process always throws a catchable error even if Playwright's pipe-level 30 s timeout fails to fire.
  • purchase-journey: detect and dismiss overlays that intercept clicks mid-flow (not just at step start) #165 — The go-checkout step (step 9) had no overlay handling. A newsletter popup triggered by exit-intent mid-flow (between minicart open and checkout click) would block the checkout button with no recovery. Added dismissOverlays (4 s cap) before the click loop and dismissBlockingOverlay (structural elementFromPoint check) on each failed navigation attempt before LLM recovery — mirrors the pattern already in steps 6 (add-to-cart) and 7 (open-minicart).

Test plan

  • npx tsc --noEmit passes (verified)
  • parity e2e --url http://localhost:<port> --flows purchase-journey launches browser within 30 s on macOS (no hang)
  • Against a site with a newsletter popup mid-flow, step 9 logs overlay dismissal and reaches checkout

🤖 Generated with Claude Code


Summary by cubic

Fixes a macOS headless Chromium launch hang, hardens checkout against popups, and bumps @decocms/parity to 0.17.6. Addresses #163 and #165.

  • Bug Fixes
    • macOS: add --disable-setuid-sandbox and --no-zygote, keep --no-sandbox/--disable-gpu, and wrap chromium.launch() in a 35s Promise.race with a clearer timeout.
    • Step 9 checkout: pre-dismiss overlays (4s cap via dismissOverlays); if click is blocked, call dismissBlockingOverlay and retry once before LLM recovery.

Written for commit 7e2cfdc. Summary will update on new commits.

Review in cubic

JonasJesus42 and others added 2 commits July 28, 2026 20:13
…out (#163 #165)

#163 — add --disable-setuid-sandbox and --no-zygote Chromium flags to prevent
zygote/setuid sandbox deadlocks in macOS headless. Wrap chromium.launch() in a
JS-level Promise.race with a 35s backstop so the process always throws a
catchable error even if Playwright's own pipe-level 30s timeout fails to fire.

#165 — add overlay dismissal to go-checkout step 9, which had none. Calls
dismissOverlays (4s cap) before the click loop, and dismissBlockingOverlay on
each failed navigation attempt before LLM recovery. Mirrors steps 6 and 7.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant