chore(test): e2e test-tabs-lifecycle-events#3937
Open
LKuchno wants to merge 23 commits into
Open
Conversation
…ario.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…on/react-native-screens into @lkuchno/test-tabs-events
Collaborator
Author
|
Android tests are failing because toasts and the Tabs screen list are displayed 'under' the system navigation bar on older Android versions. This test is waiting for a fix or a workaround. |
…ns into @lkuchno/e2e-test-tabs-events
…ns into @lkuchno/e2e-test-tabs-events
…ns into @lkuchno/e2e-test-tabs-events
kkafar
reviewed
May 12, 2026
|
|
||
| async function tapTab(label: string) { | ||
| if (device.getPlatform() === 'android') { | ||
| await element(by.text(`Tab ${label}`)).tap(); |
Member
There was a problem hiding this comment.
doesn't tapping by id work on Android? Is this something we need to work on? I believe @kmichalikk added the testID for tabs on Android also.
Collaborator
Author
There was a problem hiding this comment.
When I was writing this test I think there was problem with it, but now it works correctly.
I've changed this part of code to tap element by testID.
06824d0
| describe('Tabs lifecycle events', () => { | ||
| beforeAll(async () => { | ||
| await device.reloadReactNative(); | ||
| await selectSingleFeatureTestsScreen('Tabs', 'test-tabs-events'); |
Member
There was a problem hiding this comment.
If we change name of the test, this will need to be updated.
…ns into @lkuchno/e2e-test-tabs-events
…ns into @lkuchno/e2e-test-tabs-events
…ns into @lkuchno/e2e-test-tabs-events
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.
Description
Updates the test screen component and manual scenario. Adds a Detox suite for tab lifecycle events - onWillAppear, onDidAppear, onWillDisappear, onDidDisappear. Events are surfaced as numbered, color-coded toasts so that both firing order and identity can be asserted programmatically.
Closes: https://github.com/software-mansion/react-native-screens-labs/issues/1123?issue=software-mansion%7Creact-native-screens-labs%7C1183
Changes
e2e/single-feature-tests/tabs/test-tabs-events.e2e.ts
Detox suite with 5 it blocks. A shared dismissToast helper waits for a toast by label and taps it. Toast labels carry numeric prefixes (1. TabA: onWillAppear) so assertions are order-sensitive. Event order assertions are branched by device.getPlatform() to account for the differing iOS / Android firing sequence. The re-tap test is Android only.
test-tabs-events/index.tsx
Added tabBarItemTestID to each route config (tab-a-item, tab-b-item, tab-c-item) so tab bar items are directly addressable by the E2E suite. Added testID to the content container of TabScreen, keyed by route as tabContent-{routeKey}, used to assert which tab is currently visible.
test-tabs-events/scenario.md
Updated E2E status from "ongoing research" to "partially automated" with notes on what is not automated.