feat(e2e): add Playwright checkout suite across connect-core, react a… - #51
Open
AlonsoFi wants to merge 1 commit into
Open
feat(e2e): add Playwright checkout suite across connect-core, react a…#51AlonsoFi wants to merge 1 commit into
AlonsoFi wants to merge 1 commit into
Conversation
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.
Closes #42
Implements the full E2E Playwright suite from issue #20:
Headless (connect-core): session handshake, escrow create/deposit/fiat-receipt,
SSE released event, force dispute and force timeout via test controls.
React (connect-react): happy path and dispute path via
simulator controls, mocking /v1/listings and /v1/quotes with page.route()
since those endpoints are not yet in the gateway.
Web component (connect-elements): happy path and
bridge postMessage (checkout:complete) assertion, same mocking strategy.
SSE reconnect regression: aborts the second SSE connection via page.route(),
verifies cursor-based replay delivers the released event exactly once
(no duplicates from seenCursors dedup).
Webhook delivery: best-effort capture server registered via /admin/webhooks,
handles gracefully if gateway does not deliver in test mode.
CI: new e2e job in ci.yml runs on every PR after build, spins up a
postgres:16 service container, runs prisma migrate deploy, installs
Playwright Chromium, and uploads playwright-report as an artifact.