Repository navigation
Deep-link into the FlatList maintainVisibleContentPosition example in E2E flows - #59639
Open
cipolleschi wants to merge 1 commit into
Open
cipolleschi wants to merge 1 commit into
cipolleschi wants to merge 1 commit into
Conversation
… E2E flows The 24 FlatList maintainVisibleContentPosition flows reached their example by scrolling the RNTester component list at `speed: 40` twice (to "FlatList", then to "maintainVisibleContentPosition"). Every other list flow already opens its example with an `rntester://` deep link, which is faster and doesn't depend on where the example sits in the list. Open `rntester://example/FlatListExample/maintainVisibleContentPosition` directly and wait for the example's scroll offset display before starting. The portrait orientation setup is unchanged.
This was referenced Oct 29, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack (iOS RNTester E2E cost, review bottom-up):
Summary:
Part 5 of the iOS E2E cost stack.
The 24 FlatList
maintainVisibleContentPositionflows reached their example by scrolling the RNTester component list atspeed: 40twice: to "FlatList", then to "maintainVisibleContentPosition". Every other list flow already opens its example with anrntester://deep link (#58481, #58794), which doesn't depend on where the example sits in the list. Over Oct 27–29, ~17% of the failed attempts of these flows on iOS (25 of 150) were navigation failures:No visible element found: id: maintainVisibleContentPositionorid: FlatList.This is a reliability change, not a speed change. Locally the deep-linked flows are ~6.5s slower each.
helpers/confirm-open-link.ymldoes an optionaltapOn: 'Open'that waits ~8.6s whenever no confirmation dialog appears (the existing deep-linked flows pay the same cost). Making that helper cheaper would speed up every deep-linked flow; it's out of scope here.Open
rntester://example/FlatListExample/maintainVisibleContentPositiondirectly, then wait for the example'sscroll-offset-display. The portrait orientation setup is unchanged.I didn't merge the flows. After part 3 each flow only costs an app relaunch plus a deep link, and merging would let one failing scenario hide the ones after it and carry list state from one scenario into the next.
Note:
flatlist-maintainvisible.ymlcontains a second YAML document (a second header plus commands) that Maestro most likely never runs. I converted it too, for consistency.Changelog:
[INTERNAL] [CHANGED] - Deep-link into the FlatList maintainVisibleContentPosition example in E2E flows
Test Plan:
RNTesterApp-NewArch-Releasefrom CI run 40888922130 (iPhone 17 Pro / iOS 26.5, Apple Silicon), in a single Maestro run: 24/24 passed in 9m43s (20–29s per flow). The same 24 flows frommain(scrolling the list) passed in 7m06s (12–16s per flow) on the same simulator. Per-command timings show the difference is the optionalOpentap inconfirm-open-link.yml(~8.6s, status WARNED because no dialog appeared).rntester://example/FlatListExample/maintainVisibleContentPositionresolves through RNTester's existing deep link handling (FlatListExample→FlatListExampleIndex, examplename: 'maintainVisibleContentPosition') on both iOS and Android.