Skip to content

[E2E] Prepare native preload ready-flow validation - #631

Draft
kyle-schellen wants to merge 1 commit into
ks-e2e-preload-cache-hit-signalfrom
ks-e2e-preload-ready-flow
Draft

[E2E] Prepare native preload ready-flow validation#631
kyle-schellen wants to merge 1 commit into
ks-e2e-preload-cache-hit-signalfrom
ks-e2e-preload-ready-flow

Conversation

@kyle-schellen

@kyle-schellen kyle-schellen commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

What changed

  • e2e/tests/shared/native-preload-ready.yaml — top-level test, tagged preload/smoke.
  • e2e/flows/checkout/assert-native-preload-ready.yaml — reusable subflow.
  • e2e/config/matrix.yml — Swift and Kotlin adopt preload. React Native is unchanged.
  • e2e/scripts/execute_browserstack_run + e2e/lib/ — request device logs, then verify the Android cache-hit line in the passing testcase's log artifact.

Why

Presenting checkout is not proof that preload was reused. This asserts the whole chain:

preload-state-ready  →  cached WebView selected  →  real checkout content

Cache use is read per platform: iOS asserts the diagnostic in the sample's Settings → Logs screen inside the flow; Android verifies Returning cached preloaded WebView. in the BrowserStack device log afterwards, and rejects the concurrent-fresh message.

No queue case, no timing threshold, no new public SDK API.

Testing

Physical devices, all four targets green:

Target Device
swift-ios iPhone 15, iOS 27 Beta
kotlin-android Google Pixel 9, Android 17.0
react-native-ios / react-native-android unchanged, still green

The Android leg proves the artifact downloader against live BrowserStack URLs: its verification raises unless the log is fetched and contains the cache-hit signal.

Also run locally on simulator and emulator via dev swift e2e --tags preload and dev android e2e --tags preload, plus the Ruby, Swift, and Android suites and lint.

Stack

  1. [E2E] Expose native preload state markers #626 — preload state markers in the samples
  2. [E2E] Log ready Swift preload cache hits #627 — Swift ready cache-hit diagnostic
  3. [E2E] Prepare native preload ready-flow validation #631 — this PR: the E2E test, matrix wiring, and BrowserStack validation

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 Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@kyle-schellen kyle-schellen changed the title test(e2e): prepare native preload ready-flow validation [E2E] Prepare native preload ready-flow validation Aug 12, 2026
@kyle-schellen
kyle-schellen force-pushed the ks-e2e-preload-ready-flow branch from 451f16b to f51edda Compare August 14, 2026 20:36
@kyle-schellen
kyle-schellen force-pushed the ks-e2e-preload-cache-hit-signal branch from 1842281 to f0af482 Compare August 14, 2026 20:36
@kyle-schellen
kyle-schellen marked this pull request as ready for review August 14, 2026 21:46
@kyle-schellen
kyle-schellen requested a review from a team as a code owner August 14, 2026 21:46
@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

@kyle-schellen
kyle-schellen marked this pull request as draft August 14, 2026 22:44
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