Skip to content

chore(test): e2e test for test-tabs-bottom-accessory-visibility-ios - #4534

Draft
LKuchno wants to merge 4 commits into
mainfrom
@lkuchno/e2e-test-tabs-bottom-accessory-visibility-ios
Draft

chore(test): e2e test for test-tabs-bottom-accessory-visibility-ios#4534
LKuchno wants to merge 4 commits into
mainfrom
@lkuchno/e2e-test-tabs-bottom-accessory-visibility-ios

Conversation

@LKuchno

@LKuchno LKuchno commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Description

Closes: https://github.com/software-mansion/react-native-screens-labs/issues/1745

Adds Detox e2e coverage for the iOS bottomAccessoryHidden prop on TabsHost, covering the end state of each step of the test-tabs-bottom-accessory-visibility-ios scenario on iPhone.

Both hidden (bottomAccessoryHidden) and rendered (bottomAccessory set / undefined) remove the accessory from the native hierarchy, so presence is asserted the same way for both and cross-checked against the tab bar: the tab item pill (_UITabButton) spans the accessory's width while one is attached and shrinks back once it is gone (checked relatively, no hardcoded constants).

bottomAccessory only exists on iOS 26+, so both bottom-accessory suites now run only there: a shared describeIfiOS26 / describeIfiPadIOS26 in e2e-utils (isIOSVersionAtLeast('26.0')) skips them on older iOS and on Android.

Animation quality (smooth slide out/in, no blank frame) stays manual - Detox samples settled state, not animation frames.

Changes

  • New spec FabricExample/e2e/single-feature-tests/tabs/test-tabs-bottom-accessory-visibility-ios.e2e.ts - one it per scenario step: baseline, hidden on/off, rendered off/on, and the combined hidden + rendered sequence.
  • FabricExample/e2e/e2e-utils.ts: added describeIfiOS26 and describeIfiPadIOS26.
  • test-tabs-bottom-accessory-layout-ios.e2e.ts: iPhone and @ipad suites switched to the iOS 26+ gates.
  • Test screen index.tsx: added testIDs only (bottom-accessory-visibility-scrollview, rendered-switch, hidden-switch, bottom-accessory-text).
  • scenario.md: ## E2E test section states the coverage split; scenario-description.ts: e2eCoverage'incomplete'.

@LKuchno LKuchno added area:tabs Issue related to bottom tabs type:chore A general maintenance task, that does not fall into other categories. type:e2e Actions related to e2e maintenance and development, especially automation. labels Aug 21, 2026

Copilot AI 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.

Pull request overview

Adds iOS 26+ Detox coverage for TabsHost bottom accessory visibility and updates related test gating and documentation.

Changes:

  • Added end-state tests for hidden and rendered accessory transitions.
  • Gated bottom-accessory suites to iOS 26+.
  • Added test IDs and updated coverage documentation.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
FabricExample/e2e/single-feature-tests/tabs/test-tabs-bottom-accessory-visibility-ios.e2e.ts Adds visibility E2E tests
FabricExample/e2e/single-feature-tests/tabs/test-tabs-bottom-accessory-layout-ios.e2e.ts Applies iOS 26+ gating
FabricExample/e2e/e2e-utils.ts Adds shared iOS 26 suite gates
apps/src/tests/single-feature-tests/tabs/test-tabs-bottom-accessory-visibility-ios/scenario.md Documents E2E coverage
apps/src/tests/single-feature-tests/tabs/test-tabs-bottom-accessory-visibility-ios/scenario-description.ts Marks coverage incomplete
apps/src/tests/single-feature-tests/tabs/test-tabs-bottom-accessory-visibility-ios/index.tsx Adds Detox test IDs
Suppressed comments (1)

FabricExample/e2e/e2e-utils.ts:44

  • This description does not match the gate: isIOSVersionAtLeast('26.0') skips every iOS version below 26, including iOS 19–25, not only iOS 18 and older. Please update the comment so the documented supported/skip range is accurate.
 * Suites for iOS 26+-only features (e.g. `bottomAccessory`, the header overflow
 * button). `isIOSVersionAtLeast` is false on Android, so these stay iOS-only
 * and additionally self-skip on iOS 18 and older.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@LKuchno
LKuchno marked this pull request as draft August 21, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:tabs Issue related to bottom tabs type:chore A general maintenance task, that does not fall into other categories. type:e2e Actions related to e2e maintenance and development, especially automation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants