refactor(test): add scenario for overrideScrollViewContentInsetAdjustmentBehavior (iOS)#3957
refactor(test): add scenario for overrideScrollViewContentInsetAdjustmentBehavior (iOS)#3957
Conversation
…tware-mansion/react-native-screens into @lkuchno/test-tab-screen-options-ios
There was a problem hiding this comment.
Pull request overview
Adds an iOS-only manual test scenario for TabsScreen’s overrideScrollViewContentInsetAdjustmentBehavior, making the scenario addressable by future automation via stable identifiers and documenting expected behavior.
Changes:
- Added a new
scenario.mdwith step-by-step manual verification forfalse,true, and default (prop omitted). - Refactored the scenario into its own directory with a new scenario key matching the directory name.
- Added
testIDprops for the per-tabScrollViewcontent and tab bar item identifiers for automation targeting.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| apps/src/tests/single-feature-tests/tabs/test-tabs-override-scroll-view-content-inset-ios/scenario.md | New manual verification guide for the scenario. |
| apps/src/tests/single-feature-tests/tabs/test-tabs-override-scroll-view-content-inset-ios/index.tsx | Scenario implementation refactor; adds testIDs and updates scenario key. |
| apps/src/tests/single-feature-tests/tabs/index.ts | Updates tabs scenario registry to import/export the scenario from its new location/name. |
Comments suppressed due to low confidence (2)
apps/src/tests/single-feature-tests/tabs/test-tabs-override-scroll-view-content-inset-ios/index.tsx:96
AppwrapsTabsContainerin a nestedNavigationIndependentTree/NavigationContainer. In the single-feature tests harness, scenarios are already hosted under a navigation container (ScenarioScreen), and other tab scenarios useTabsContainerwithout this extra wrapper. UnlessTabsContainerspecifically requires its own independent navigation tree here, consider removing the nested navigation container to keep the scenario environment consistent and avoid double-navigation complexity.
apps/src/tests/single-feature-tests/tabs/test-tabs-override-scroll-view-content-inset-ios/index.tsx:84tabBarItemAccessibilityLabelis being used as an ID-like string andtabBarItemTestIDis missing for the False tab. This makes automated targeting inconsistent across tabs and also overrides the accessibility label with a non-human-friendly value. Prefer settingtabBarItemTestIDfor the False tab as well, and either omittabBarItemAccessibilityLabel(let it default totitle) or set it to a human-readable label for all tabs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| **Default** — each exhibit the expected inset behavior and that the | ||
| **Default** tab (prop omitted) matches the **True** tab. | ||
|
|
||
| **OS test creation version:** iOS 18.6 and 26.2 |
There was a problem hiding this comment.
The OS version line is ambiguous: iOS 18.6 and 26.2 reads like two different OSes, but only the first number is prefixed with iOS. For consistency with other scenario docs (e.g. iOS: 18.6 and 26.2), consider adding the iOS: prefix/formatting so it’s clear both versions are iOS versions.
| **OS test creation version:** iOS 18.6 and 26.2 | |
| **OS test creation version:** iOS: 18.6 and 26.2 |
…added missing ":"
Description
This PR adds a manual test scenario for the
overrideScrollViewContentInsetAdjustmentBehaviorprop onTabsScreen(iOS). The scenario screen was already present in the codebase but lackedtestIDandtabBarItemTestID/tabBarItemAccessibilityLabelattributes needed to make it addressable by automated tests, and had no accompanyingscenario.mddocument.The screen has been refactored into its own directory (
test-tabs-override-scroll-view-content-inset-ios/) to follow the convention used by other tab test scenarios, and the scenario key has been updated to match the new directory name. Thescenario.mdcovers three distinct cases -false,true, and the default (prop omitted).No automated e2e test is included in this PR; the scenario is marked as ongoing research.
Closes: https://github.com/software-mansion/react-native-screens-labs/issues/1210
Changes
override-scroll-view-content-inset.tsxinto a newtest-tabs-override-scroll-view-content-inset-ios/directory with anindex.tsxentry point, aligning with the naming convention of sibling test scenarioskeyfromoverride-scroll-view-content-insettotest-tabs-override-scroll-view-content-inset-iosto match the new directory nametestIDprops to eachScrollView(override-inset-false-scrollview,override-inset-true-scrollview,override-inset-default-scrollview) andtabBarItemTestID/tabBarItemAccessibilityLabelto each tab entry to make them individually addressable by future automated testsscenario.mdwith a full step-by-step manual verification guide covering all threeoverrideScrollViewContentInsetAdjustmentBehaviorstates and a cross-tab comparison sectionTestTabsOverrideScrollViewContentInsetScenario video
Note: scenario was updated - now we first scroll down and in next step scroll to top.
Screen.Recording.2026-04-30.at.10.38.31.mov