Conversation
…oid native suite
Pair every ValueKey('name') widget with Semantics(identifier: 'name') so
flutter-probe's native verb family (tap native / see native / type native,
uiautomator resource-id on Android, accessibilityIdentifier on iOS) resolves
the same widgets as the Flutter-side #name selectors. 79 identifiers added
across 12 files; ValueKeys kept — both selector styles now hit one widget.
Skipped: the three BottomNavigationBarItem-level ValueKeys (tab_home,
tab_tests, tab_about) — BottomNavigationBarItem is not a Widget and cannot
be wrapped; their tab icons carry the native identifiers instead.
New mobile/tests/native/ suite (4 tests, @Native, Android-only): home tab
navigation, items search via type native, gesture hit-areas, device
capability taps cross-checked with Flutter-side assertions. Runs against
new mobile/tests/probe.android.yaml (Android package id differs from the
iOS bundle id in probe.yaml). Verified live: 4/4 passing twice on
emulator-5554; existing smoke/ui suites still green.
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.
Summary
flutter-probe's new native UI-automation verb family (
tap native/see native/type native— uiautomatorresource-idon Android,accessibilityIdentifieron iOS) had nothing real to test against in this fixture: widgets were keyed only withValueKey('name'), which does not propagate to the platform accessibility tree.Semantics(identifier: 'name')does.Semantics(identifier:)wrappers added across 12 files (app.dart, navigation/home_page.dart, and all feature presentation pages), each mirroring the existingValueKeystring. ValueKeys are kept — this is additive, so#name(Dart agent) and native resource-id selectors resolve to the same widget.ValueKeys on the threeBottomNavigationBarItems (tab_home,tab_tests,tab_about) —BottomNavigationBarItemis not a Widget and cannot be wrapped inSemantics. The tab icons (tab_home_iconetc.) carry the native identifiers and serve as the native handles for tab navigation.mobile/tests/native/suite (4 tests, tagged@native, Android-only per the verb docs): home tab navigation by resource-id, items-list search viatype native, gesture hit-area exposure, and device-capability taps whose state changes are cross-checked with Flutter-sidesee— proving both selector styles drive one widget.mobile/tests/probe.android.yaml: the native suite needs the Android package id (com.alphawavesystems.probe_test_app), which differs from the iOS bundle id inprobe.yaml.Test plan
flutter analyze— no new issues (remaining warning/error are pre-existing intest/widget_test.dartand untouched files)flutter build apk --debug --dart-define=PROBE_AGENT=true— successflutter build ios --debug --simulator --dart-define=PROBE_AGENT=true— successuiautomator dump(home, items, device screens all expose resource-ids)tests/smoke/+tests/ui/run on the same emulator — 29/30 passed; the one failure (smoke/launch.probe) is environmental (it usesopen the appwithout restart and asserts the home screen; passes from a clean launch, unrelated to this change)🤖 Generated with Claude Code
https://claude.ai/code/session_01R8STRkxzYNXcJCb5kdyJ7E