Skip to content

test: add one-command Maestro SDK E2E coverage - #804

Open
Shahroz16 wants to merge 7 commits into
mainfrom
codex/android-message-inbox-e2e
Open

test: add one-command Maestro SDK E2E coverage#804
Shahroz16 wants to merge 7 commits into
mainfrom
codex/android-message-inbox-e2e

Conversation

@Shahroz16

@Shahroz16 Shahroz16 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Android sample and CI integration for the shared Maestro SDK-to-backend suite.

  • adds native make e2e, setup, quick, and Message Inbox shortcuts
  • adds a full-screen SDK Message Inbox sample alongside the existing overlay presentation
  • exposes stable sample selectors used by Maestro without changing SDK API behavior
  • runs smoke coverage on internal PRs and the standard profile on a weekday schedule
  • provisions the API 35 emulator image explicitly and uploads evidence on success or failure
  • keeps PR and scheduled execution behind MOBILE_E2E_ENABLED until rollout is proven

Dependency

Depends on customerio/mobile-e2e#1. The workflow intentionally remains disabled for PR and scheduled execution until the shared harness is merged and repository configuration is present.

Validation

  • shared standard profile passed Android smoke, geofence, and Message Inbox end to end
  • repeat quick profile passed Android smoke and preserved the earlier evidence archive
  • make format passed
  • make lint passed locally and in the pre-push hook
  • ./gradlew :samples:java_layout:assembleDebug passed
  • workflow YAML parsing and git diff --check passed

Repository configuration after merge

Add MOBILE_E2E_APP_API_KEY and the MOBILE_E2E_INBOX_TRANSACTIONAL_MESSAGE_ID repository variable; manually dispatch the workflow once, then set MOBILE_E2E_ENABLED=true.


Note

Low Risk
Changes are limited to sample app UI, Maestro/docs, and CI; SDK API behavior is unchanged and PR/scheduled runs stay disabled until MOBILE_E2E_ENABLED is set.

Overview
Adds one-command Maestro SDK-to-backend E2E for the Android java_layout sample, wired to the shared customerio/mobile-e2e harness locally and in CI.

Local: New .maestro/e2e.sh and Makefile targets (make e2e, e2e-setup, e2e-quick, e2e-inbox) clone/update the harness and run Android profiles. Maestro env/docs switch from MAESTRO_EXT_API_KEY to MAESTRO_APP_API_KEY and document INBOX_TRANSACTIONAL_MESSAGE_ID.

Sample: Adds a full-screen Visual Inbox (VisualInboxActivity + dashboard entry) using NotificationInboxView, and shares visualInboxFonts with the existing overlay for the message-inbox suite.

CI: New Maestro SDK E2E workflow runs smoke on PRs (when enabled), full smoke/geofence/message-inbox on weekdays, or manual dispatch; provisions API 35 emulator, validates secrets, runs the harness headless, redacts artifacts, and uploads evidence. Gated by MOBILE_E2E_ENABLED until rollout.

Reviewed by Cursor Bugbot for commit f7d4b88. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

Copy link
Copy Markdown

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


@Shahroz16 Shahroz16 changed the title Add one-command Maestro SDK end-to-end coverage test: add one-command Maestro SDK E2E coverage Jul 31, 2026
@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.14%. Comparing base (b5cf24d) to head (f7d4b88).
⚠️ Report is 30 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #804      +/-   ##
============================================
- Coverage     69.07%   66.14%   -2.93%     
- Complexity      838     1517     +679     
============================================
  Files           149      245      +96     
  Lines          4601     8617    +4016     
  Branches        628     1408     +780     
============================================
+ Hits           3178     5700    +2522     
- Misses         1189     2454    +1265     
- Partials        234      463     +229     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

Copy link
Copy Markdown
  • java_layout: codex/android-message-inbox-e2e (1785506110)

@github-actions

Copy link
Copy Markdown

Build available to test
Version: codex-android-message-inbox-e2e-SNAPSHOT
Repository: https://central.sonatype.com/repository/maven-snapshots/

@github-actions

Copy link
Copy Markdown
  • kotlin_compose: codex/android-message-inbox-e2e (1785506103)

@github-actions

Copy link
Copy Markdown

📏 SDK Binary Size Comparison Report

No changes detected in SDK binary size ✅

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
  • kotlin_compose: codex/android-message-inbox-e2e (1785755644)

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
  • java_layout: codex/android-message-inbox-e2e (1785755652)

@Shahroz16
Shahroz16 marked this pull request as ready for review August 3, 2026 11:52
@Shahroz16
Shahroz16 requested a review from a team as a code owner August 3, 2026 11:52

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b1324ee. Configure here.

--platform android \
--sdk-repo "$GITHUB_WORKSPACE" \
--suite "$SUITE" \
--headless

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CI harness CLI differs locally

Medium Severity

The GitHub workflow invokes the shared runner with run and --sdk-repo, while .maestro/e2e.sh (used by make e2e) calls test with --android-sdk-repo. If the pinned harness only accepts one subcommand and flag pair, CI will fail once MOBILE_E2E_ENABLED is turned on even though local make e2e passes.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b1324ee. Configure here.

@Shahroz16 Shahroz16 Aug 4, 2026

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.

These are two supported harness entry points, not mismatched CLIs. The top-level e2e command dispatches test to scripts/run_profile.sh, where --android-sdk-repo selects the repository for a multi-suite profile. run_profile.sh then invokes every suite through e2e run --platform android --suite ... --sdk-repo ..., which is the same single-flow contract CI calls directly. The pinned harness declares and parses both forms, so CI does not depend on an unsupported subcommand or flag pair. No change is needed.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
  • java_layout: codex/android-message-inbox-e2e (1785797552)

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
  • kotlin_compose: codex/android-message-inbox-e2e (1785797555)

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
  • java_layout: codex/android-message-inbox-e2e (1785829678)

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
  • kotlin_compose: codex/android-message-inbox-e2e (1785829679)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant