Skip to content

Promote cart-hardcoded-buyer-identity test to run on swift/kotlin - #560

Merged
kieran-osgood-shopify merged 1 commit into
mainfrom
kieran-osgood/e2e-checkout-hardcoded-buyer-identity
Aug 18, 2026
Merged

Promote cart-hardcoded-buyer-identity test to run on swift/kotlin#560
kieran-osgood-shopify merged 1 commit into
mainfrom
kieran-osgood/e2e-checkout-hardcoded-buyer-identity

Conversation

@kieran-osgood-shopify

@kieran-osgood-shopify kieran-osgood-shopify commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

What changes are you making?

Previous Test suite state ran the guest/hardcoded buyer identity tests for react-native and excluded the "full" tag from swift/kotlin runs
This PR moves hardcoded buyer identity from tests/react-native to tests/shared, and modifies the tags so that we run them

How to test

Test suite should list hardcoded in the comment below for swift/kotlin

dev swift e2e and dev swift kotlin should now both report 3 tests (up from 2 on main)
CI should also report 3 tests for both of these


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.

@github-actions github-actions Bot added the #gsd:50662 Rebase Checkout Kit on UCP label Jul 31, 2026
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-present-and-close-checkout branch from 4783464 to 528c5d6 Compare August 3, 2026 12:12
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 4538a43 to ec85833 Compare August 3, 2026 12:12
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-present-and-close-checkout branch from 528c5d6 to cd3c10f Compare August 3, 2026 14:42
@tiagocandido
tiagocandido force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from ec85833 to 200f651 Compare August 3, 2026 14:42
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-present-and-close-checkout branch from cd3c10f to 10a2582 Compare August 4, 2026 17:04
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 200f651 to 06ebb2e Compare August 4, 2026 17:04
@kieran-osgood-shopify kieran-osgood-shopify changed the title Promote `cart-hardcoded-buyeridentity order test on all four targets Promote cart-hardcoded-buyer-identity test to run on swift/kotlin Aug 13, 2026
- full
# Only React Native runs this today, and every row now runs the whole tests folder.
# The shared guest test replaces this file, and this tag goes with it.
- wip

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This gets removed in #561 when we promote guest to run on kotlin/swift

@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 7de4e16 to 29adbfa Compare August 13, 2026 16:21
@kieran-osgood-shopify
kieran-osgood-shopify changed the base branch from graphite-base/560 to kieran-osgood/e2e-present-and-close-checkout August 13, 2026 16:21
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-present-and-close-checkout branch from 4cea2b7 to d80860a Compare August 14, 2026 14:35
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 29adbfa to 16ff6a4 Compare August 14, 2026 14:35
@kieran-osgood-shopify
kieran-osgood-shopify marked this pull request as ready for review August 14, 2026 14:41
@kieran-osgood-shopify
kieran-osgood-shopify requested a review from a team as a code owner August 14, 2026 14:41
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

Package Size

Platform Artifact Base Head Delta
Android release AAR 279.8 KiB 279.8 KiB 0 B
Android file breakdown
File Base Head Delta
classes.jar 295.6 KiB 295.6 KiB 0 B
res/layout/checkout_view_content.xml 2.6 KiB 2.6 KiB 0 B
res/layout/checkout_sheet_content.xml 2.0 KiB 2.0 KiB 0 B
res/values/values.xml 1.3 KiB 1.3 KiB 0 B
R.txt 1.2 KiB 1.2 KiB 0 B
AndroidManifest.xml 922 B 922 B 0 B
proguard.txt 798 B 798 B 0 B
res/drawable/close.xml 431 B 431 B 0 B
res/menu/checkout_menu.xml 354 B 354 B 0 B
META-INF/com/android/build/gradle/aar-metadata.properties 157 B 157 B 0 B

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.

@bitrise

bitrise Bot commented Aug 14, 2026

Copy link
Copy Markdown

Install this build

Open Tophat, select your target device, then click Install. Links open on the Mac running Tophat.

SDK Install
React Native Install with Tophat
Swift Install with Tophat
Kotlin Install with Tophat

Checkout Kit E2E results

Status Suite Target Platform OS version tag Device
react-native-ios react-native ios latest iPhone 15
iOS 27 Beta
react-native-android react-native android latest Google Pixel 9
Android 17.0
kotlin-android kotlin android latest Google Pixel 9
Android 17.0
swift-ios swift ios latest iPhone 15
iOS 27 Beta

@kieran-osgood-shopify
kieran-osgood-shopify changed the base branch from kieran-osgood/e2e-present-and-close-checkout to graphite-base/560 August 14, 2026 15:08
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 16ff6a4 to 6dea94c Compare August 14, 2026 15:08
@graphite-app
graphite-app Bot changed the base branch from graphite-base/560 to main August 14, 2026 15:09
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from 6dea94c to 8fcbde6 Compare August 14, 2026 15:09
.padding(.bottom, 6)
Text("Your cart is empty.")
.font(.caption)
.accessibilityIdentifier(E2ETestIds.Cart.emptyMessage)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would love if we could drop E2ETestIds in favour of something more generic like AccessibilityIdentifiers since this is sample code that a merchant might use

@kyle-schellen kyle-schellen Aug 14, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can take care of this today if we want to merge these ones first.

.padding(.bottom, 6)
Text("Your cart is empty.")
.font(.caption)
.accessibilityIdentifier(E2ETestIds.Cart.emptyMessage)

@kyle-schellen kyle-schellen Aug 14, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can take care of this today if we want to merge these ones first.

kyle-schellen added a commit that referenced this pull request Aug 17, 2026
### What changes are you making?

Renames `E2ETestIds` to `AccessibilityIdentifiers` in the three sample apps, and moves it out of each sample's `e2e/` folder into a sibling `accessibility/` folder.

Follow-up to [Mark's comment on #560](#560 (comment)):

> Would love if we could drop `E2ETestIds` in favour of something more generic like `AccessibilityIdentifiers` since this is sample code that a merchant might use

The samples are reference code merchants read to learn Checkout Kit. They don't need to know we drive these apps with an E2E suite, so our test vocabulary shouldn't show up in the screens they're reading. `AccessibilityIdentifiers` is also just the more accurate name — these are applied via `accessibilityIdentifier`, `testTag` and `testID`.

The file moves out of `e2e/` for the same reason: leaving it there would keep `e2e` in the import line of every screen.

**No behaviour change.** Every identifier value is byte-for-byte identical, so no Maestro flow, tag or matrix entry is affected.

**Still in** **`e2e/`:** the harness itself (`E2EController`, `E2EControlLink`, `E2ESampleAppTarget`, `useE2ECartBootstrap`). That code really is test infrastructure, and the label is what tells a merchant to skip the folder.

### How to test

CI covers all three platforms.

---

### Before you merge

> [!IMPORTANT]
> - [x] I've added tests to support my implementation — existing identifier tests carried over and renamed on all three platforms
> - [x] I have read and agree with the [Contribution Guidelines](./CONTRIBUTING.md)
> - [x] I have read and agree with the [Code of Conduct](./CODE_OF_CONDUCT.md)
> - [ ] I've updated the relevant platform README — n/a, sample-internal rename with no public API change

<!-- github-gate:idempotency=github-gate:update_pr_body:2bae1df62047511fca489c4f -->
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch 4 times, most recently from 6b8a8d5 to ca96b75 Compare August 17, 2026 14:51
…rgets

Row 3 of the test rollout. The cart carries the contact details and the
delivery address, so checkout asks only for payment. That makes this the
shortest real order, and the first test to look at when checkout breaks.

The test moves from tests/react-native/ to tests/shared/, so Swift iOS,
Kotlin Android, React Native iOS and React Native Android all run it. The
matrix drops the `full` exclude entry that kept the ordering tests off the
native rows.

Android supplied only email, phone and country in its cart, while Swift and
React Native both supplied a delivery address. Checkout therefore showed an
empty Delivery form on Android only. CartInput.delivery now carries a
pre-selected one-time address there too, which matches Swift. The address
fields come from the same .env values the other samples read.

Two Maestro details drive the flow changes:

- A `visibilityPercentage` below 100 normalizes to zero, so `scrollUntilVisible`
  stops without scrolling. `centerElement: true` replaces it. A tap that lands
  on the keyboard does nothing, and Maestro still reports it as completed.
- Android `hideKeyboard` issues a Back press when no keyboard is up, which
  closes the checkout sheet. dismiss-active-field.yaml therefore only ever
  follows an inputText.

Verified green on all four targets, plus dev check, the Ruby suite, the Swift
package and sample targets, the Android library and sample tests, the React
Native JS and iOS tests, web and protocol.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Assisted-By: devx/ff2aa6e8-6c55-4f90-9e4e-f716ad36255d
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch from ca96b75 to 7efb7a6 Compare August 18, 2026 09:27
@kieran-osgood-shopify
kieran-osgood-shopify merged commit 5f282b0 into main Aug 18, 2026
35 checks passed
@kieran-osgood-shopify
kieran-osgood-shopify deleted the kieran-osgood/e2e-checkout-hardcoded-buyer-identity branch August 18, 2026 10:24
kieran-osgood-shopify added a commit that referenced this pull request Aug 20, 2026
### What changes are you making?

Similar to #560 - moves the checkout-guest flow to also run on Swift/Kotlin

This will now mean every e2e command should report 4/4 tests run (swift/kotlin/rnios/rnandroid)

---

### Before you merge

> [!IMPORTANT]
>
> - [ ] I've added tests to support my implementation
> - [ ] I have read and agree with the [Contribution Guidelines](./CONTRIBUTING.md)
> - [ ] I have read and agree with the [Code of Conduct](./CODE_OF_CONDUCT.md)
> - [ ] I've updated the relevant platform README (`platforms/swift/README.md` and/or `platforms/android/README.md`)

---

<details>
<summary>Releasing a new Swift version?</summary>

- [ ] 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)

</details>

<details>
<summary>Releasing a new Embedded Checkout Protocol version?</summary>

- [ ] 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

</details>

<details>
<summary>Releasing a new Android version?</summary>

- [ ] I have bumped `checkoutKitAndroid` in `platforms/android/gradle/libs.versions.toml`
- [ ] I have updated the Gradle/Maven version snippets in `platforms/android/README.md`

</details>

> [!TIP]
> See the [Contributing documentation](./CONTRIBUTING.md) for the full release process per platform.
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.

3 participants