Skip to content

feat(e2e): add the cart-from-control-link test on all four targets - #558

Draft
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-matrix-tagsfrom
kieran-osgood/e2e-cart-from-control-link
Draft

feat(e2e): add the cart-from-control-link test on all four targets#558
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-matrix-tagsfrom
kieran-osgood/e2e-cart-from-control-link

Conversation

@kieran-osgood-shopify

Copy link
Copy Markdown
Contributor

What changes are you making?

How to test


Before you merge

Important

  • I've added tests to support my implementation
  • I have read and agree with the Contribution Guidelines
  • I have read and agree with the Code of Conduct
  • I've updated the relevant platform README (platforms/swift/README.md and/or platforms/android/README.md)

Releasing a new Swift version?
  • I have bumped the version in ShopifyCheckoutKit.podspec
  • I have bumped the version in platforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swift
  • I have updated the SwiftPM/CocoaPods version snippets in platforms/swift/README.md (major version only)
Releasing a new Embedded Checkout Protocol version?
  • I have bumped embeddedCheckoutProtocolAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api if the public API changed
Releasing a new Android version?
  • I have bumped checkoutKitAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated the Gradle/Maven version snippets in platforms/android/README.md

Tip

See the Contributing documentation for the full release process per platform.

@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-matrix-tags branch from 8947b3c to 05b95c0 Compare August 3, 2026 12:12
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-cart-from-control-link branch 2 times, most recently from 893721f to ecc30cc Compare August 3, 2026 14:42
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-cart-from-control-link branch from ecc30cc to f3d5bf1 Compare August 4, 2026 17:04
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-matrix-tags branch from 275339e to 69fc2dd Compare August 5, 2026 11:06
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-cart-from-control-link branch from f3d5bf1 to 3cb7142 Compare August 5, 2026 11:06
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-matrix-tags branch from 69fc2dd to f2eaf34 Compare August 5, 2026 11:35
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-cart-from-control-link branch 2 times, most recently from 4462b86 to 67e6765 Compare August 5, 2026 11:45
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-matrix-tags branch from f2eaf34 to 1d37a2f Compare August 5, 2026 11:45
The first shared test that runs on Swift iOS, Kotlin Android, React Native iOS
and React Native Android. It drives the `cart` control link and asserts the
`cart-checkout-ready` marker, which appears only after the app parsed the link,
resolved a variant, created a cart, added the line, and navigated.

Adds `e2e/scripts/run_maestro`, the single Maestro invocation every local runner
calls, plus `dev swift e2e` and `dev android e2e` so all four targets run locally.

Verified locally: React Native iOS 23s, Swift iOS 23s, Kotlin Android 15s,
React Native Android 19s.

Three deliberate deviations from the plan:

- `E2E_CONTROL_LINK` is derived as `<app_id>://e2e` rather than configured per
  application. The scheme equals the app id on all four targets, so a second copy
  would drift from `app_id`.
- Maestro runs the workspace root, not `tests`. Maestro resolves the `flows:` glob
  in `config.yaml` relative to the path on the command line, so `tests` would look
  for `tests/tests/**` and match nothing. `tests_path` remains for tag discovery.
- The flow no longer stops the app before the link. `SceneDelegate` discards a
  cold-start URL and Android would need launch-intent handling, so one flow line
  replaces native work on two platforms. The account journey needs a running app
  anyway.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-cart-from-control-link branch from 67e6765 to 4bc352b Compare August 5, 2026 12:33
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-matrix-tags branch from 1d37a2f to 03493a6 Compare August 5, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50662 Rebase Checkout Kit on UCP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant