Skip to content

Add sample app test seams and run them in CI - #553

Open
kieran-osgood-shopify wants to merge 1 commit into
mainfrom
e2e-sample-test-seams
Open

Add sample app test seams and run them in CI#553
kieran-osgood-shopify wants to merge 1 commit into
mainfrom
e2e-sample-test-seams

Conversation

@kieran-osgood-shopify

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

Copy link
Copy Markdown
Contributor

What changes are you making?

  • Parameterized the development team in the .env so its a dynamic configuration (means contributors can set the team)
  • Added a publish to artifacts step for the android unit tests
  • added unit tests for the e2e markers

How to test

dev up and check that the xcode project has the team id set
image.png

Tests should all pass


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 e2e-sample-test-seams branch 2 times, most recently from 71f2515 to fc857ab Compare August 3, 2026 14:42
Comment thread dev.yml Outdated
Comment thread platforms/swift/Samples/CheckoutKitSwiftDemo/project.yml Outdated
Comment thread .github/workflows/android-test.yml Outdated
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the e2e-sample-test-seams branch 2 times, most recently from eb70a16 to ad8bafd Compare August 5, 2026 11:45
@kieran-osgood-shopify
kieran-osgood-shopify marked this pull request as ready for review August 5, 2026 12:09
@kieran-osgood-shopify
kieran-osgood-shopify requested a review from a team as a code owner August 5, 2026 12:09
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

React Native — Coverage Report

Lines Statements Branches Functions
Coverage: 92%
91.85% (327/356) 87.98% (183/208) 100% (86/86)

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Package Size

Platform Artifact Base Head Delta
React Native npm tarball 103.1 KiB 103.1 KiB 0 B
Android release AAR 273.6 KiB 273.6 KiB 0 B
React Native file breakdown
File Base Head Delta
node_modules/@shopify/checkout-kit-protocol/src/generated/Models.ts 85.4 KiB 85.4 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/Models.d.ts 53.0 KiB 53.0 KiB 0 B
ios/ShopifyCheckoutKit.swift 15.0 KiB 15.0 KiB 0 B
ios/AcceleratedCheckoutButtons.swift 14.0 KiB 14.0 KiB 0 B
lib/commonjs/index.js 13.1 KiB 13.1 KiB 0 B
src/components/AcceleratedCheckoutButtons.tsx 12.9 KiB 12.9 KiB 0 B
src/index.ts 12.5 KiB 12.5 KiB 0 B
lib/commonjs/components/AcceleratedCheckoutButtons.js 11.4 KiB 11.4 KiB 0 B
android/src/main/java/com/shopify/reactnative/checkoutkit/ShopifyCheckoutKitModule.java 11.1 KiB 11.1 KiB 0 B
lib/module/index.js 10.4 KiB 10.4 KiB 0 B
lib/commonjs/components/AcceleratedCheckoutButtons.js.map 10.3 KiB 10.3 KiB 0 B
lib/module/components/AcceleratedCheckoutButtons.js 10.2 KiB 10.2 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolNotifications.ts 9.5 KiB 9.5 KiB 0 B
lib/module/components/AcceleratedCheckoutButtons.js.map 9.1 KiB 9.1 KiB 0 B
src/index.d.ts 8.9 KiB 8.9 KiB 0 B
lib/module/index.js.map 8.2 KiB 8.2 KiB 0 B
src/present-dispatcher.ts 8.0 KiB 8.0 KiB 0 B
lib/commonjs/index.js.map 7.7 KiB 7.7 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolNotifications.d.ts 7.6 KiB 7.6 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolRenameMap.ts 7.2 KiB 7.2 KiB 0 B
…and 110 smaller files
Android file breakdown
File Base Head Delta
classes.jar 289.5 KiB 289.5 KiB 0 B
res/layout/checkout_view_content.xml 2.2 KiB 2.2 KiB 0 B
res/layout/checkout_sheet_content.xml 2.0 KiB 2.0 KiB 0 B
res/values/values.xml 1.2 KiB 1.2 KiB 0 B
R.txt 1.1 KiB 1.1 KiB 0 B
proguard.txt 798 B 798 B 0 B
AndroidManifest.xml 578 B 578 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 5, 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
tests/shared/launch-smoke.yaml react-native ios latest iPhone 15
iOS 27 Beta
tests/shared/launch-smoke.yaml react-native android latest Google Pixel 9
Android 17.0
tests/shared/launch-smoke.yaml kotlin android latest Google Pixel 9
Android 17.0
tests/shared/launch-smoke.yaml swift ios latest iPhone 15
iOS 27 Beta

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Web — Coverage Report

Lines Statements Branches Functions
Coverage: 96%
94.62% (299/316) 81.72% (152/186) 98.71% (77/78)

The E2E control link parser lands next and needs a test home in each
sample. Today the Swift and Android samples have no test target at all,
and the React Native sample's jest tests never run in CI, so its nine
cart bootstrap parse cases gate nothing.

Swift: add a CheckoutKitSwiftDemoTests bundle.unit-test target and a
Scripts/test_samples entry point. Android: add app/src/test with junit
and assertj, because the sample is a separate Gradle composite that
`dev android test` does not reach.

React Native: move the E2E-only cart bootstrap files into
sample/src/e2e. Merchants read these samples as integration guidance,
so E2E code belongs in one folder they can skip.

CI runs all three. swift-build-samples chains test_samples onto the
macOS runner that already provisions storefront config. android-test
runs :app:testDebugUnitTest in the job that already builds the sample.
rn-test adds a sample step without --coverage, so the coverage report
stays scoped to the published module.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

# Only the demo xcconfig carries this. The Accelerated sample still names the team in its
# own project.yml, so a second copy here would be a value nothing reads.
DEVELOPMENT_TEAM_VALUE="$(root_or_source_nonempty_value DEVELOPMENT_TEAM \

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 it be a common scenario that someone sets a custom DEVELOPMENT_TEAM and later removes it? If so, the generated Storefront.xcconfig value is reused here, so the previous team remains instead of falling back to the Shopify default. Should a blank value reset to DEFAULT_DEVELOPMENT_TEAM?

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.

2 participants