Skip to content

Stabilize RNTester Maestro flows against app cold-start race (#57343)#57343

Closed
Abbondanzo wants to merge 1 commit into
react:mainfrom
Abbondanzo:export-D109742688
Closed

Stabilize RNTester Maestro flows against app cold-start race (#57343)#57343
Abbondanzo wants to merge 1 commit into
react:mainfrom
Abbondanzo:export-D109742688

Conversation

@Abbondanzo

@Abbondanzo Abbondanzo commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary:

The iOS RNTester Maestro suite is flaky because several flows assert the landing screen immediately after launchApp, with no wait. On a CI simulator the JS bundle hasn't rendered yet when the assertion fires, so flows fail with Assertion is false: "Components" is visible (e.g. text, modal) or fail downstream after entering through the shared launch helper (e.g. pressable). It is a race, not a deterministic failure — flatlist/button use the same pattern and pass on faster runs.

Replace the bare landing-screen assertVisible with extendedWaitUntil (30s) so the bundle has time to render:

  • helpers/launch-app-and-search.yml (Components) — the shared entry path for text, pressable, image, and the new image smoke-test flows.
  • modal.yml, flatlist.yml, button.yml (Components).
  • legacy-native-module.yml (APIs).

extendedWaitUntil returns as soon as the element appears, so this adds no time on the happy path — only headroom on cold start.

This is the actual fix for the red iOS E2E; the earlier spawnSync ETIMEDOUT was the suite failing + retrying + occasionally overrunning the 10-minute per-attempt cap, not a simulator/driver-startup problem. No harness/setup changes.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D109742688

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jun 25, 2026
@meta-codesync

meta-codesync Bot commented Jun 25, 2026

Copy link
Copy Markdown

@Abbondanzo has exported this pull request. If you are a Meta employee, you can view the originating Diff in D109742688.

@meta-codesync meta-codesync Bot changed the title Harden iOS Maestro E2E harness against driver-startup hangs Stabilize RNTester Maestro flows against app cold-start race Jun 26, 2026

@cortinico cortinico left a comment

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.

Review automatically exported from Phabricator review in Meta.

…7343)

Summary:

The iOS RNTester Maestro suite is flaky because several flows assert the landing screen immediately after `launchApp`, with no wait. On a CI simulator the JS bundle hasn't rendered yet when the assertion fires, so flows fail with `Assertion is false: "Components" is visible` (e.g. `text`, `modal`) or fail downstream after entering through the shared launch helper (e.g. `pressable`). It is a race, not a deterministic failure — `flatlist`/`button` use the same pattern and pass on faster runs.

Replace the bare landing-screen `assertVisible` with `extendedWaitUntil` (30s) so the bundle has time to render:
- `helpers/launch-app-and-search.yml` (`Components`) — the shared entry path for `text`, `pressable`, `image`, and the new image smoke-test flows.
- `modal.yml`, `flatlist.yml`, `button.yml` (`Components`).
- `legacy-native-module.yml` (`APIs`).

`extendedWaitUntil` returns as soon as the element appears, so this adds no time on the happy path — only headroom on cold start.

This is the actual fix for the red iOS E2E; the earlier `spawnSync ETIMEDOUT` was the suite failing + retrying + occasionally overrunning the 10-minute per-attempt cap, not a simulator/driver-startup problem. No harness/setup changes.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D109742688
@meta-codesync meta-codesync Bot changed the title Stabilize RNTester Maestro flows against app cold-start race Stabilize RNTester Maestro flows against app cold-start race (#57343) Jun 29, 2026
@meta-codesync meta-codesync Bot closed this in 324198b Jun 29, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Jun 29, 2026
@meta-codesync

meta-codesync Bot commented Jun 29, 2026

Copy link
Copy Markdown

This pull request has been merged in 324198b.

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

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants