Skip to content

fix: make React Native test failures fail the CI check - #776

Draft
JuliocesarsantosTI wants to merge 4 commits into
xmtp:mainfrom
JuliocesarsantosTI:fix/709-rn-test-failures-block-ci
Draft

fix: make React Native test failures fail the CI check#776
JuliocesarsantosTI wants to merge 4 commits into
xmtp:mainfrom
JuliocesarsantosTI:fix/709-rn-test-failures-block-ci

Conversation

@JuliocesarsantosTI

@JuliocesarsantosTI JuliocesarsantosTI commented Jul 25, 2026

Copy link
Copy Markdown

Part of #709

What was wrong

While looking through the React Native E2E flow, I noticed the CI could report success before the full test run had actually finished.

The completion marker was available too early, and the flow was checking that a FAIL marker was not visible instead of positively confirming that the whole suite finished successfully.

What I changed

  • Updated example/src/TestScreen.tsx to expose clear final states for the test run:
    • tests-complete
    • tests-passed
    • tests-failed
  • Updated example/e2e/mainflow.yaml so Maestro waits for the real completion state and then checks for tests-passed.
  • Increased the Android and iOS workflow timeouts so the full suite has enough time to finish.
  • Kept the existing CI failure diagnostics.

I did not touch the shipped SDK code under src/.

Testing

I validated the parts I could run locally:

  • dependency installs with immutable lockfiles
  • ESLint
  • Prettier
  • workflow YAML checks
  • Expo module build
  • checked the repo for any other usage of the changed test markers

I could not run the native E2E flow locally because I do not have an Android emulator / macOS simulator setup available, so the first CI run on this PR will be the first full native execution of the updated flow.

Notes

The exact runtime of the full suite may need some timeout tuning once there is real CI data.

Branch protection / required-check configuration still needs to be handled by a maintainer, and I did not add automatic flaky-test issue creation because I did not want to introduce noisy or unreliable behavior.

Checklist

  • No tests skipped or weakened
  • No new secrets or permissions
  • No shipped SDK runtime code changed
  • Local validation completed
  • Native E2E limitation documented

Note

Fix React Native CI to fail on test failures

  • Adds tests-passed and tests-failed elements with accessibility labels to TestScreen.tsx, giving the Maestro flow a machine-readable pass/fail signal
  • Updates mainflow.yaml to assert visibility of tests-passed (failing the run if tests fail), extends the wait timeout to 40 minutes, and captures a summary screenshot
  • Increases CI timeouts: Android from 45→75 min, iOS from 60→120 min to accommodate longer builds

Macroscope summarized a41cb61.

@changeset-bot

changeset-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a41cb61

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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