Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Two critical end-to-end test issues remain: the home-list locator cannot resolve because its testID is not rendered, and the navigation wait uses an unsupported detached state.
2 open issues
What changed in this PR
This pull request improves mobile E2E reliability by waiting for navigation, scrolling, tab transitions, and alert dismissal to settle before subsequent gestures, while limiting the Issue #1050 back-gesture checks to supported iOS versions.
Changes:
- Adds an iOS-version hint and skips unsupported back-gesture cases.
- Adds retry and settlement handling for example navigation and tab selection.
- Waits for native alert dismissal before continuing page-selection assertions.
| File | Description |
|---|---|
| example/src/gh-issues/Issue1050BackGestureRepro.tsx | Displays whether the iOS 26 content-pop behavior is available. |
| e2e/tests/tab-view-inside-scroll-view.e2e.ts | Retries the first-tab tap if scrolling has not settled. |
| e2e/tests/support/app.ts | Attempts to wait for the home screen transition to finish before continuing after navigation. |
| e2e/tests/on-page-selected.e2e.ts | Waits for the native alert to disappear after dismissal. |
| e2e/tests/issues/issue-1050-back-gesture.e2e.ts | Skips mid-screen back-gesture cases on iOS versions that do not support the required behavior. |
Review effort: Lite
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
🟢 e2e: 58 passedAll 58 tests in 22 files
e2e 0.21.3 · 12m 43s · android · run artifacts |
🟢 e2e: 2 flaky, 43 passed
|
| Test | Time | |
|---|---|---|
| tests/issues/issue-1154-page-change-focus.e2e.ts · 2 flaky, 11 passed | 4m 56s | |
| leaving a page with setPage blurs its input (1 failed attempt first) | 36.4s | |
| 🟢 | setPage with an input focused lands on the target page | 20.6s |
| 🟢 | a setPage two pages away lands on the far page | 23.7s |
| 🟢 | a setPage repeated during the slide changes nothing | 18.7s |
| 🟢 | leaving a page with a swipe blurs its input | 22.3s |
| 🟢 | an input focused on the new page keeps focus | 17.5s |
| 🟢 | a swipe keeps the focus the new page takes from onPageSelected | 18.5s |
| 🟢 | a setPage that interrupts another lands on the page asked for last | 17.7s |
| 🟢 | a setPage that interrupts another still lands on the later page | 17.4s |
| a setPage redirected once the focus has landed blurs it (1 failed attempt first) | 22.6s | |
| 🟢 | two setPage calls that cancel out land on the first page | 23.4s |
| 🟢 | right to left › leaving a page with a swipe blurs its input | 37.9s |
| 🟢 | a page that grows with the keyboard still lands on the target page | 19.9s |
| 🟢 | tests/basic-pager.e2e.ts · 3 passed | 1m 42s |
| 🟢 | basic pager › in LTR › pages horizontally | 35.6s |
| 🟢 | basic pager › in LTR › pages vertically | 22.3s |
| 🟢 | basic pager › in RTL › pages horizontally with the reversed gesture | 44.0s |
| 🟢 | tests/issues/issue-1050-back-gesture.e2e.ts · 8 passed | 2m 50s |
| 🟢 | back gesture over the pager › in LTR › a back swipe on the first page pops the screen | 10.4s |
| 🟢 | back gesture over the pager › in LTR › a back swipe on a later page goes to the previous page | 11.0s |
| 🟢 | back gesture over the pager › in LTR › a forward swipe on the first page still goes to the next page | 14.3s |
| 🟢 | back gesture over the pager › in RTL › a back swipe on the first page pops the screen | 34.1s |
| 🟢 | back gesture over the pager › in RTL › a back swipe on a later page goes to the previous page | 53.6s |
| 🟢 | back gesture over the pager › in RTL › a forward swipe on the first page still goes to the next page | 23.1s |
| 🟢 | back gesture over a pager in a nested stack › a back swipe on the first page pops the outer stack | 10.4s |
| 🟢 | back gesture over a pager in a nested stack › a forward swipe on the first page still goes to the next page | 13.1s |
| 🟢 | tests/issues/issue-1083-modal-set-page.e2e.ts · 1 passed | 19.9s |
| 🟢 | setPage called behind a native-stack modal lands on the requested page | 19.9s |
| 🟢 | tests/issues/issue-1096-keyboard-shrink.e2e.ts · 1 passed | 26.2s |
| 🟢 | keyboard avoidance does not shrink the page under the keyboard | 26.2s |
| 🟢 | tests/issues/issue-1098-nested-pager.e2e.ts · 1 passed | 16.4s |
| 🟢 | outer pager stays responsive after its page count changes around a nested pager | 16.4s |
| 🟢 | tests/issues/issue-1142-search-bar-inset.e2e.ts · 1 passed | 20.6s |
| 🟢 | FlatList inside the pager gets the search bar safe-area insets | 20.6s |
| 🟢 | tests/issues/issue-1230-pager-between-pages.e2e.ts · 1 passed | 16.0s |
| 🟢 | a pager scrolled to a focused field still lands on the page asked for | 16.0s |
| 🟢 | tests/issues/pr-1194-remount-initial-page.e2e.ts · 1 passed | 18.0s |
| 🟢 | a pager remounted after its screen was covered starts on its own initialPage | 18.0s |
| 🟢 | tests/keyboard-dismiss-mode.e2e.ts · 3 passed | 41.8s |
| 🟢 | on-drag: dragging the pager blurs the input | 13.3s |
| 🟢 | on-drag: setPage keeps the input focused | 13.6s |
| 🟢 | none: dragging the pager keeps the input focused | 14.8s |
| 🟢 | tests/material-top-bar.e2e.ts · 1 passed | 21.2s |
| 🟢 | material top tabs survive a native-stack push and pop | 21.2s |
| 🟢 | tests/native-driver-events.e2e.ts · 2 passed | 21.7s |
| 🟢 | native driver events › setPage through the Animated ref drives the native value | 11.7s |
| 🟢 | native driver events › a swipe drives the native value | 10.0s |
| 🟢 | tests/nested-pager-view.e2e.ts · 1 passed | 18.4s |
| 🟢 | nested horizontal and vertical pagers scroll independently | 18.4s |
| 🟢 | tests/on-page-selected.e2e.ts · 1 passed | 19.9s |
| 🟢 | onPageSelected fires an alert for every page change | 19.9s |
| 🟢 | tests/scrollable-pager-view.e2e.ts · 1 passed | 24.1s |
| 🟢 | pager inside a ScrollView keeps its page across vertical scrolls | 24.1s |
| 🟢 | tests/set-page-animation.e2e.ts · 4 passed | 58.4s |
| 🟢 | ltr › direct setPage selects only the target page (ltr) | 9.4s |
| 🟢 | rtl › direct setPage selects only the target page (rtl) | 30.7s |
| 🟢 | the page next to the target is selectable after a direct setPage | 9.6s |
| 🟢 | scroll setPage passes the pages in between, direct setPage does not | 8.7s |
| 🟢 | tests/smoke.e2e.ts · 1 passed | 10.3s |
| 🟢 | horizontal pager pages with the panel buttons | 10.3s |
| 🟢 | tests/tab-view-inside-scroll-view.e2e.ts · 1 passed | 21.1s |
| 🟢 | TabView inside a ScrollView swipes tabs and scrolls the page | 21.1s |
e2e 0.21.3 · 17m 40s · ios · run artifacts

Summary
Test Plan
What's required for testing (prerequisites)?
What are the steps to reproduce (after prerequisites)?
Compatibility
Checklist
README.md