Skip to content

Replace the E2E suite cross product with Maestro tags in CI - #557

Draft
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-maestro-tagsfrom
kieran-osgood/e2e-matrix-tags
Draft

Replace the E2E suite cross product with Maestro tags in CI#557
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-maestro-tagsfrom
kieran-osgood/e2e-matrix-tags

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-maestro-tags branch from 9fb7cc3 to f6b1c17 Compare August 3, 2026 12:12
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-matrix-tags branch 2 times, most recently from 05b95c0 to b63d34b Compare August 3, 2026 14:42
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-maestro-tags branch from f6b1c17 to 7fe2c6b Compare August 3, 2026 14:42
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-maestro-tags branch from 7fe2c6b to c92b49f Compare August 4, 2026 17:04
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-matrix-tags branch from b63d34b to 275339e 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-maestro-tags branch from c92b49f to 06f0462 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-maestro-tags branch from 06f0462 to 9df32cf Compare August 5, 2026 11:35
@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
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-maestro-tags branch from 9df32cf to 2d277f3 Compare August 5, 2026 11:45
Every BrowserStack run now executes the whole e2e/tests folder and tags decide
what runs inside it. Adding a test file adds no matrix rows: it only needs a tag
the matrix already includes. That removes the suites x applications cross
product, which grew four rows per new test.

matrix.yml gains tests_path and a top-level tags block holding the default
include and exclude lists. An application may override either list to adopt a
test before the other three carry it.

Deliberate deviation from the plan: the plan said add E2E_CONTROL_LINK per
application in matrix.yml. The library derives it as "<app_id>://e2e" instead,
because the deep link scheme equals the app id on all four targets. A second
copy would drift from app_id. A test pins the derivation for every row.

Validation rejects an include tag no test carries. Without it a typo produced a
green run that executed nothing. declared_tags reads the flow headers, so both
the top-level and per-application lists are checked.

Also fixes three real defects found while wiring this up:

- RN Android could not receive the control link at all. Its manifest restricted
  the custom scheme to host "cart" while the contract uses host "e2e". Host
  "cart" was referenced nowhere else.
- The parser tests on all three platforms pinned
  com.shopify.checkout_kit_android_demo, which no app uses. The Kotlin sample's
  applicationId is com.shopify.checkoutkit.androiddemo. They now pin the four
  real schemes plus one unknown scheme as an explicit robustness case.
- CI and local runs disagreed on variable names. Both now use E2E_APP_ID,
  E2E_READY_MARKER and E2E_CONTROL_LINK, and the bootstrap flow composes
  /cart?... from E2E_CONTROL_LINK itself. The APP_ID and
  CART_BOOTSTRAP_BASE_LINK bridge variables are gone.

The run result payload carries include_tags and exclude_tags so a run that
selected nothing is visible in the artifact instead of silently green.

Verified: 163 Ruby tests, 29 Swift, 28 Kotlin, 203 jest, dev check all 12 green.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-maestro-tags branch from 2d277f3 to 7f3e78b 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