ReviewOS

also looking at this

craft-native/craft

fix(native): retain keyed controls and correct map and tab chrome

#368
Merged chris wants to merge codex/native-repeated-selector-identity into main
32 files +449 -100
.github/workflows/mobile-e2e.ymlmodified+14-14
Changes to .github/workflows/mobile-e2e.yml
@@ -76,7 +76,7 @@ on:
7676 android_suite:
7777 description: Android native fixture coverage for the android-navigation scope
7878 type: choice
79 options: [focused, full, system-bars, maps, accessibility]
79 options: [focused, full, system-bars, maps, accessibility, identity]
8080 default: focused
8181 selectors:
8282 description: Optional XCTest selector for focused native iOS rendering or navigation
@@ -113,9 +113,9 @@ jobs:
113113 - uses: actions/checkout@v6
114114
115115 - name: Setup Pantry (provides Bun, Zig, etc.)
116 uses: pantry-pm/pantry/packages/action@e4b2d439c174c41d3e1c99b5743acb5789e92231 # v0.11.93
116 uses: pantry-pm/pantry/packages/action@da17bb9317e8f8c247618fb176fe97269f15bfe4 # v0.11.94
117117 with:
118 version: '0.11.93'
118 version: '0.11.94'
119119
120120 - name: Install dependencies
121121 run: bun install --frozen-lockfile
@@ -167,7 +167,7 @@ jobs:
167167 uses: actions/checkout@v6
168168 with:
169169 repository: stacksjs/stx
170 ref: 3dd3240fc9a64f360e9690eee50c483be3325705
170 ref: 0d85afbab4b569ac2f09113a6c9a5d11d926145f
171171 path: .stx-compiler
172172
173173 - name: Install stx compiler dependencies
@@ -267,9 +267,9 @@ jobs:
267267 - uses: actions/checkout@v6
268268
269269 - name: Setup Pantry (provides Bun, Zig, etc.)
270 uses: pantry-pm/pantry/packages/action@e4b2d439c174c41d3e1c99b5743acb5789e92231 # v0.11.93
270 uses: pantry-pm/pantry/packages/action@da17bb9317e8f8c247618fb176fe97269f15bfe4 # v0.11.94
271271 with:
272 version: '0.11.93'
272 version: '0.11.94'
273273
274274 - name: Install XcodeGen
275275 run: brew install xcodegen
@@ -286,7 +286,7 @@ jobs:
286286 uses: actions/checkout@v6
287287 with:
288288 repository: stacksjs/stx
289 ref: 3dd3240fc9a64f360e9690eee50c483be3325705
289 ref: 0d85afbab4b569ac2f09113a6c9a5d11d926145f
290290 path: .stx-compiler
291291
292292 - name: Install stx compiler dependencies
@@ -400,9 +400,9 @@ jobs:
400400 - uses: actions/checkout@v6
401401
402402 - name: Setup Pantry (provides Bun, Zig, etc.)
403 uses: pantry-pm/pantry/packages/action@e4b2d439c174c41d3e1c99b5743acb5789e92231 # v0.11.93
403 uses: pantry-pm/pantry/packages/action@da17bb9317e8f8c247618fb176fe97269f15bfe4 # v0.11.94
404404 with:
405 version: '0.11.93'
405 version: '0.11.94'
406406
407407 - name: Setup Java
408408 uses: actions/setup-java@v6
@@ -434,7 +434,7 @@ jobs:
434434 uses: actions/checkout@v6
435435 with:
436436 repository: stacksjs/stx
437 ref: 3dd3240fc9a64f360e9690eee50c483be3325705
437 ref: 0d85afbab4b569ac2f09113a6c9a5d11d926145f
438438 path: .stx-compiler
439439
440440 - name: Install Android stx compiler dependencies
@@ -566,9 +566,9 @@ jobs:
566566 - uses: actions/checkout@v6
567567
568568 - name: Setup Pantry (provides Bun, Zig, etc.)
569 uses: pantry-pm/pantry/packages/action@e4b2d439c174c41d3e1c99b5743acb5789e92231 # v0.11.93
569 uses: pantry-pm/pantry/packages/action@da17bb9317e8f8c247618fb176fe97269f15bfe4 # v0.11.94
570570 with:
571 version: '0.11.93'
571 version: '0.11.94'
572572
573573 - name: Cache Zig artifacts
574574 uses: actions/cache@v5
@@ -618,7 +618,7 @@ jobs:
618618 api-level: ${{ fromJSON((inputs.scope != 'android-navigation' || inputs.android_suite == 'full') && '[34,35]' || inputs.android_suite == 'system-bars' && '[35]' || '[34]') }}
619619 env:
620620 CRAFT_ANDROID_NATIVE_SUITE: ${{ inputs.scope != 'android-navigation' && 'full' || inputs.android_suite || 'focused' }}
621 CRAFT_ANDROID_TEST_CLASS: ${{ inputs.scope == 'android-navigation' && inputs.android_suite == 'accessibility' && 'dev.craft.navigationtest.NativeNavigationTest#nativeTestIdsRemainQueryableWithoutReplacingVisibleLabels' || inputs.scope == 'android-navigation' && inputs.android_suite == 'maps' && 'dev.craft.navigationtest.NativeMapTest#keyFreeBasemapsKeepTheRecordedRouteAndDirectionSignsVisible,dev.craft.navigationtest.NativeMapTest#nativeMapMutationsUpdateThePinAndCameraWithoutReloadingTheStyle,dev.craft.navigationtest.NativeMapTest#showingTheLocationDotDoesNotRequestPermissionDuringRendering,dev.craft.navigationtest.NativeMapTest#controlledRegionEchoPreservesTheCameraAfterANativeDrag,dev.craft.navigationtest.NativeMapTest#backgroundAndResumeKeepTheNativeMapAndCamera' || inputs.scope == 'android-navigation' && inputs.android_suite == 'system-bars' && 'dev.craft.navigationtest.NativeNavigationTest#nativeScreenBackgroundOptionAppliesAndResets' || inputs.scope == 'android-navigation' && inputs.android_suite != 'full' && 'dev.craft.navigationtest.NativeNavigationTest#outgoingTabTapWinsOverSettlingSwipe,dev.craft.navigationtest.NativeNavigationTest#thirdTabTapWinsOverSettlingSwipe,dev.craft.navigationtest.NativeNavigationTest#cancelledSwipeTargetIsVisibleWhenSelectedLater,dev.craft.navigationtest.NativeNavigationTest#completedReverseSwipeKeepsRetainedTabVisible,dev.craft.navigationtest.NativeNavigationTest#nativePullToRefreshSurvivesViewReattachment,dev.craft.navigationtest.NativeNavigationTest#pushedScreenTabAccessoryOpensNativeRouteAndClearsOnBack,dev.craft.navigationtest.NativeFlatListTest#refreshAppearanceUsesTheScreenContrastFallback,dev.craft.navigationtest.NativeNavigationTest#nativeDatePickerKeepsFollowingControlsMounted' || '' }}
621 CRAFT_ANDROID_TEST_CLASS: ${{ inputs.scope == 'android-navigation' && inputs.android_suite == 'accessibility' && 'dev.craft.navigationtest.NativeNavigationTest#nativeTestIdsRemainQueryableWithoutReplacingVisibleLabels' || inputs.scope == 'android-navigation' && inputs.android_suite == 'maps' && 'dev.craft.navigationtest.NativeMapTest#keyFreeBasemapsKeepTheRecordedRouteAndDirectionSignsVisible,dev.craft.navigationtest.NativeMapTest#nativeMapMutationsUpdateThePinAndCameraWithoutReloadingTheStyle,dev.craft.navigationtest.NativeMapTest#showingTheLocationDotDoesNotRequestPermissionDuringRendering,dev.craft.navigationtest.NativeMapTest#controlledRegionEchoPreservesTheCameraAfterANativeDrag,dev.craft.navigationtest.NativeMapTest#backgroundAndResumeKeepTheNativeMapAndCamera' || inputs.scope == 'android-navigation' && inputs.android_suite == 'identity' && 'dev.craft.navigationtest.NativeNavigationTest#repeatedTestIdsKeepDistinctProtocolViewsAcrossReorders' || inputs.scope == 'android-navigation' && inputs.android_suite == 'system-bars' && 'dev.craft.navigationtest.NativeNavigationTest#nativeScreenBackgroundOptionAppliesAndResets' || inputs.scope == 'android-navigation' && inputs.android_suite != 'full' && 'dev.craft.navigationtest.NativeNavigationTest#outgoingTabTapWinsOverSettlingSwipe,dev.craft.navigationtest.NativeNavigationTest#thirdTabTapWinsOverSettlingSwipe,dev.craft.navigationtest.NativeNavigationTest#cancelledSwipeTargetIsVisibleWhenSelectedLater,dev.craft.navigationtest.NativeNavigationTest#completedReverseSwipeKeepsRetainedTabVisible,dev.craft.navigationtest.NativeNavigationTest#nativePullToRefreshSurvivesViewReattachment,dev.craft.navigationtest.NativeNavigationTest#pushedScreenTabAccessoryOpensNativeRouteAndClearsOnBack,dev.craft.navigationtest.NativeFlatListTest#refreshAppearanceUsesTheScreenContrastFallback,dev.craft.navigationtest.NativeNavigationTest#nativeDatePickerKeepsFollowingControlsMounted' || '' }}
622622 if: ${{ inputs.scope != 'ios-navigation' && inputs.scope != 'ios-render' }}
623623 runs-on: ubuntu-latest
624624 timeout-minutes: 35
@@ -642,7 +642,7 @@ jobs:
642642 - uses: actions/checkout@v6
643643 with:
644644 repository: stacksjs/stx
645 ref: 3dd3240fc9a64f360e9690eee50c483be3325705
645 ref: 0d85afbab4b569ac2f09113a6c9a5d11d926145f
646646 path: .stx-compiler
647647 - run: bun install --no-save
648648 working-directory: .stx-compiler