Skip to content

[visual testing] open-example: Wait for RNTester before linking, and retry until the example opens - #60004

Open
robhogan wants to merge 1 commit into
mainfrom
robhogan/visual-ios-accept-link
Open

robhogan wants to merge 1 commit into
mainfrom
robhogan/visual-ios-accept-link

Conversation

@robhogan

@robhogan robhogan commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

RNTester ignores a deep link until its JS has rendered, but open-example.yml only waits for animations to end - which on a fresh iOS simulator happens ~1.4s after relaunch, before RNTester takes links at ~2.7s. Since #59994 sent the link once on iOS, 17 of 25 iOS capture jobs had a flow fail its first attempt this way (29 failures across almost every flow), and in one job the retries ran out.

This waits for the "Components" label in RNTester's tab bar, which is on every screen including a restored example, before linking once. That wait is optional, and as a backstop the helper now takes the ID of an element only the requested example has, then relaunches and links again until it's visible, up to 3 times. The five call sites that only waited for example-container now use a specific testID from their example.

Changelog: [Internal]

Test plan:
Ran every visual flow once (no Maestro retries) on a freshly erased iPhone 17 Pro simulator (iOS 27) with RNTester Release from CI. Locally the drop is deterministic:

Before the link Result
main (wait for animations) All 12 flows failed
retry with the animation wait All 12 flows failed - every retry links too early
This PR All 12 flows passed, twice, ~8 min each. The retry never fired, and the "Components" wait took 2.7s median, 3.1s max

maestro check-syntax passes for every flow.

On CI (run 43580332516), both platforms passed all 12 flows on their first attempt, with no relaunch retries and no "Components" timeouts. The iOS capture job took 19m, against 18-27m on main since #59994.

@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 Nov 13, 2026
@robhogan robhogan changed the title [visual testing] Accept the iOS link dialog after each deep link [visual testing] open-example: Accept the iOS link dialog after each deep link Nov 13, 2026
@robhogan
robhogan force-pushed the robhogan/visual-ios-accept-link branch from f81f277 to 7f32263 Compare November 14, 2026 08:22
@robhogan robhogan changed the title [visual testing] open-example: Accept the iOS link dialog after each deep link [visual testing] open-example: Retry until the example is on screen Nov 14, 2026
@facebook-github-tools facebook-github-tools Bot added the Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. label Nov 14, 2026
RNTester ignores a deep link until its JS has rendered, but `open-example.yml` only waited for animations to end, which happens about 1.4s after relaunch, before RNTester takes links (about 2.7s). Since #59994 sent the link once on iOS, 17 of 25 iOS capture jobs had a flow fail its first attempt this way. The helper now waits for the "Components" tab label, which RNTester's tab bar shows on every screen, then links once. It also takes the ID of an element only that example has, and relaunches and links again until it's visible, up to 3 times, since a relaunch can restore the previous example, which has the same `example-container`.

Changelog: [Internal]
@robhogan
robhogan force-pushed the robhogan/visual-ios-accept-link branch from 7f32263 to eb0d03a Compare November 14, 2026 09:23
@robhogan robhogan changed the title [visual testing] open-example: Retry until the example is on screen [visual testing] open-example: Wait for RNTester before linking, and retry until the example opens Nov 14, 2026
@robhogan
robhogan enabled auto-merge (squash) November 14, 2026 12:00

This branch has not been deployed

No deployments
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. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants