[Web] Add Playwright harness and checkout happy path - #855
Merged
Merged
Conversation
Package Size
Web file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
markmur
reviewed
Oct 1, 2026
markmur
added this pull request to stack #867
October 2, 2026 10:22
markmur
force-pushed
the
web-e2e-harness
branch
from
October 2, 2026 10:23
628c127 to
305bd48
Compare
markmur
approved these changes
Oct 2, 2026
markmur
force-pushed
the
web-e2e-harness
branch
from
October 2, 2026 10:40
305bd48 to
e499d4f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes are you making?
Web tests currently run in a simulated DOM. Add a Playwright harness that loads the built web package in Chromium and exercises a real popup and cross-origin protocol exchange. The first happy-path test checks presentation, the ready handshake, public start/complete events and checkout snapshots, and host-driven closing.
The synthetic checkout needs no storefront configuration. Telemetry is disabled and unexpected external requests are blocked and fail the test. The private test package lives in
platforms/web/test/e2eand shares the existing web workspace and lockfile, following the React Native integration-harness pattern.Run the suite through
dev web e2eordev web check. Web CI runs it and retains reports and failure traces. The existing web path filter covers the harness.dev upprovisions Chromium using Playwright’s idempotent installer;dev web e2e installremains available for targeted setup or recovery.For this initial increment, the browser suite shares the Web CI job to reuse dependency setup and the SDK build. The latest PR run spent about 24 seconds installing Chromium and 1.7 seconds running Playwright; the full Web job took about 55 seconds.
dev web buildanddev web testremain independent of browser tests. As coverage grows, especially with multiple browsers or real checkout flows, a separate required Web E2E job would allow independent execution and retries, following the native E2E pattern.Builds on Mark Murray’s harness and ideas in #418, with a focused initial test for the current lifecycle API. Error cases, further presentation coverage, origin validation, and Firefox/WebKit coverage are follow-up work.
How to test
Validated locally with
shadowenv exec --:dev web check: lint, 304 unit tests, E2E typecheck, Chromium happy path, package build and verification, and sample build.dev upalso passed before the directory move.git diff --check.Setup and harness documentation:
platforms/web/test/e2e/README.md.The normal PR CI run after publishing passed on the current commit, including the Linux Web job, Chromium happy path, report upload, and
CI Required.Stack