Promote cart-hardcoded-buyer-identity test to run on swift/kotlin - #560
Conversation
4783464 to
528c5d6
Compare
4538a43 to
ec85833
Compare
528c5d6 to
cd3c10f
Compare
ec85833 to
200f651
Compare
cd3c10f to
10a2582
Compare
200f651 to
06ebb2e
Compare
cart-hardcoded-buyer-identity test to run on swift/kotlin
| - 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 |
There was a problem hiding this comment.
This gets removed in #561 when we promote guest to run on kotlin/swift
326c0ba to
4cea2b7
Compare
7de4e16 to
29adbfa
Compare
4cea2b7 to
d80860a
Compare
29adbfa to
16ff6a4
Compare
Package Size
Android 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. |
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
16ff6a4 to
6dea94c
Compare
d80860a to
3a7abd9
Compare
6dea94c to
8fcbde6
Compare
| .padding(.bottom, 6) | ||
| Text("Your cart is empty.") | ||
| .font(.caption) | ||
| .accessibilityIdentifier(E2ETestIds.Cart.emptyMessage) |
There was a problem hiding this 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
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
I can take care of this today if we want to merge these ones first.
### 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 -->
6b8a8d5 to
ca96b75
Compare
…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
ca96b75 to
7efb7a6
Compare
### 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.

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-nativetotests/shared, and modifies the tags so that we run themHow to test
Test suite should list hardcoded in the comment below for swift/kotlin
dev swift e2eanddev swift kotlinshould now both report 3 tests (up from 2 on main)CI should also report 3 tests for both of these
Before you merge
Important
platforms/swift/README.mdand/orplatforms/android/README.md)Releasing a new Swift version?
ShopifyCheckoutKit.podspecplatforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swiftplatforms/swift/README.md(major version only)Releasing a new Embedded Checkout Protocol version?
embeddedCheckoutProtocolAndroidinplatforms/android/gradle/libs.versions.tomlprotocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.apiif the public API changedReleasing a new Android version?
checkoutKitAndroidinplatforms/android/gradle/libs.versions.tomlplatforms/android/README.mdTip
See the Contributing documentation for the full release process per platform.