diff --git a/packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml index 3f3310b58cd7..8698e0ecd950 100644 --- a/packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-append-maintainvisible.yml @@ -8,58 +8,58 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Append item (should NOT affect scroll offset) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at bottom" + text: 'Add 1 item at bottom' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= -5 && output.offsetAfter - output.offsetBefore <= 5} # Multiple appends - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at bottom" + text: 'Add 1 item at bottom' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= -5 && output.offsetAfter - output.offsetBefore <= 5} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-complex-mutations-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-complex-mutations-maintainvisible.yml index a277e611f1de..701074f21222 100644 --- a/packages/rn-tester/.maestro/flatlist-complex-mutations-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-complex-mutations-maintainvisible.yml @@ -6,44 +6,44 @@ appId: ${APP_ID} - setOrientation: portrait - waitForAnimationToEnd: timeout: 3000 -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 200 - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before mutations - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Add items at top and bottom (simulates complex mutations) - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - tapOn: - text: "Add 1 item at bottom" + text: 'Add 1 item at bottom' - waitForAnimationToEnd: timeout: 2000 # Record offset after mutations - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Delta should be ~44px (only top prepend affects anchor) - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - tapOn: - text: "Reset" + text: 'Reset' diff --git a/packages/rn-tester/.maestro/flatlist-delete-anchor-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-delete-anchor-maintainvisible.yml index 913b5c16ae3a..498c919bc0da 100644 --- a/packages/rn-tester/.maestro/flatlist-delete-anchor-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-delete-anchor-maintainvisible.yml @@ -6,39 +6,39 @@ appId: ${APP_ID} - setOrientation: portrait - waitForAnimationToEnd: timeout: 3000 -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 200 (item 5 should be visible) - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before delete - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Clear the list (simulates delete of all items including anchor) - tapOn: - text: "Clear (empty list)" + text: 'Clear (empty list)' - waitForAnimationToEnd: timeout: 2000 # Reset to restore items - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 # Verify list is restored -- assertVisible: "0" +- assertVisible: '0' diff --git a/packages/rn-tester/.maestro/flatlist-delete-middle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-delete-middle-maintainvisible.yml index 4b717591093b..c807d1770e9d 100644 --- a/packages/rn-tester/.maestro/flatlist-delete-middle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-delete-middle-maintainvisible.yml @@ -6,40 +6,40 @@ appId: ${APP_ID} - setOrientation: portrait - waitForAnimationToEnd: timeout: 3000 -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 400 (item 10 should be visible) - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before delete - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Add items at top (shifts middle items up) - tapOn: - text: "Add 3 items at top" + text: 'Add 3 items at top' - waitForAnimationToEnd: timeout: 2000 # Record offset after prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Delta should be ~132px (3 items × 44px) - assertTrue: ${output.offsetAfter - output.offsetBefore >= 128 && output.offsetAfter - output.offsetBefore <= 136} - tapOn: - text: "Reset" + text: 'Reset' diff --git a/packages/rn-tester/.maestro/flatlist-empty-list-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-empty-list-maintainvisible.yml index fc3481315fc7..7dee4a0baafe 100644 --- a/packages/rn-tester/.maestro/flatlist-empty-list-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-empty-list-maintainvisible.yml @@ -10,60 +10,60 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to item 10 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Clear the list (empty list) - tapOn: - text: "Clear (empty list)" + text: 'Clear (empty list)' - waitForAnimationToEnd: timeout: 2000 # Reset data (repopulate) - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 # Scroll to item 10 again and prepend — verify MVCP still works after empty - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-first-prepend-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-first-prepend-maintainvisible.yml index 37bb2f13141e..1b90a7454a7a 100644 --- a/packages/rn-tester/.maestro/flatlist-first-prepend-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-first-prepend-maintainvisible.yml @@ -9,41 +9,41 @@ appId: ${APP_ID} timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend (element may be off-screen but still accessible) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Add 1 item at top - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 # Record offset after prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Verify delta is ~44px (40px height + 4px margin) - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} # Reset - tapOn: - text: "Reset" + text: 'Reset' diff --git a/packages/rn-tester/.maestro/flatlist-horizontal-add50-reset-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-horizontal-add50-reset-maintainvisible.yml index 54528d7a709c..79a805e89c28 100644 --- a/packages/rn-tester/.maestro/flatlist-horizontal-add50-reset-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-horizontal-add50-reset-maintainvisible.yml @@ -7,47 +7,47 @@ appId: ${APP_ID} - setOrientation: portrait - waitForAnimationToEnd: timeout: 3000 -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable horizontal mode - tapOn: - text: "Horizontal: OFF" + text: 'Horizontal: OFF' - waitForAnimationToEnd: timeout: 3000 # Add 50 items at top (horizontal) - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Verify we're at offset ~500 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetBefore >= 480 && output.offsetBefore <= 520} # Reset - should return to offset 0 - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-horizontal-inverted-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-horizontal-inverted-maintainvisible.yml index 032d76072924..c9b60ab70c2c 100644 --- a/packages/rn-tester/.maestro/flatlist-horizontal-inverted-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-horizontal-inverted-maintainvisible.yml @@ -9,82 +9,82 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable horizontal mode - tapOn: - text: "Horizontal: OFF" + text: 'Horizontal: OFF' - waitForAnimationToEnd: timeout: 3000 # Enable inverted mode - tapOn: - text: "Inverted: OFF" + text: 'Inverted: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 1 item (delta should be ~204px) - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 200 && output.offsetAfter - output.offsetBefore <= 208} # Prepend 3 items (delta should be ~612px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 3 items at top" + text: 'Add 3 items at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 600 && output.offsetAfter - output.offsetBefore <= 624} # Prepend 3 more items (delta should be ~612px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 3 items at top" + text: 'Add 3 items at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 600 && output.offsetAfter - output.offsetBefore <= 624} # Reset - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-horizontal-inverted-recycle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-horizontal-inverted-recycle-maintainvisible.yml index 8df8300cfb33..b86ebefe8b7c 100644 --- a/packages/rn-tester/.maestro/flatlist-horizontal-inverted-recycle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-horizontal-inverted-recycle-maintainvisible.yml @@ -8,74 +8,74 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable both horizontal and inverted mode - tapOn: - text: "Horizontal: OFF" + text: 'Horizontal: OFF' - waitForAnimationToEnd: timeout: 3000 - tapOn: - text: "Inverted: OFF" + text: 'Inverted: OFF' - waitForAnimationToEnd: timeout: 3000 # Enable recycling mode (windowSize=2) - tapOn: - text: "Recycle: OFF" + text: 'Recycle: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before 50-item prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 50 items (delta should be ~10200px = 50 * 204) - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 10000 && output.offsetAfter - output.offsetBefore <= 10400} # Prepend 1 item (delta should be ~204px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 200 && output.offsetAfter - output.offsetBefore <= 208} # Reset - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.rawText = maestro.copiedText; output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 5000} diff --git a/packages/rn-tester/.maestro/flatlist-horizontal-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-horizontal-maintainvisible.yml index 83b12117650f..4289802fc0b4 100644 --- a/packages/rn-tester/.maestro/flatlist-horizontal-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-horizontal-maintainvisible.yml @@ -8,51 +8,51 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable horizontal mode - tapOn: - text: "Horizontal: OFF" + text: 'Horizontal: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Prepend in horizontal mode - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 202 && output.offsetAfter - output.offsetBefore <= 206} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-horizontal-recycle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-horizontal-recycle-maintainvisible.yml index d5457fa33a5c..5267afec16e6 100644 --- a/packages/rn-tester/.maestro/flatlist-horizontal-recycle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-horizontal-recycle-maintainvisible.yml @@ -8,70 +8,70 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable horizontal mode - tapOn: - text: "Horizontal: OFF" + text: 'Horizontal: OFF' - waitForAnimationToEnd: timeout: 3000 # Enable recycling mode (windowSize=2) - tapOn: - text: "Recycle: OFF" + text: 'Recycle: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before 50-item prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 50 items (delta should be ~10200px = 50 * 204) - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 10000 && output.offsetAfter - output.offsetBefore <= 10400} # Prepend 1 item (delta should be ~204px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 200 && output.offsetAfter - output.offsetBefore <= 208} # Reset - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 5000} diff --git a/packages/rn-tester/.maestro/flatlist-inverted-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-inverted-maintainvisible.yml index 947a5ff8aa73..1efb844b3b1a 100644 --- a/packages/rn-tester/.maestro/flatlist-inverted-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-inverted-maintainvisible.yml @@ -9,53 +9,53 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' - waitForAnimationToEnd: timeout: 2000 # Enable inverted mode - tapOn: - text: "Inverted: OFF" + text: 'Inverted: OFF' - waitForAnimationToEnd: timeout: 1000 # Scroll to offset 100 (safe offset within scrollable range) - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Prepend in inverted mode (delta will be +44 since inverted not supported by Fabric MVCP) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 40 && output.offsetAfter - output.offsetBefore <= 48} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-inverted-recycle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-inverted-recycle-maintainvisible.yml index b5d6d35ff97e..928e968c7c67 100644 --- a/packages/rn-tester/.maestro/flatlist-inverted-recycle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-inverted-recycle-maintainvisible.yml @@ -10,75 +10,75 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable inverted mode - tapOn: - text: "Inverted: OFF" + text: 'Inverted: OFF' - waitForAnimationToEnd: timeout: 1000 # Enable recycling (windowSize=3) - tapOn: - text: "Recycle: OFF" + text: 'Recycle: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 100 (within initial 20-item range) - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before 50-item prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 50 items (delta should be ~2200px = 50 * 44) - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 2100 && output.offsetAfter - output.offsetBefore <= 2300} # Scroll to offset 500 (now within range after 70 items) - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Prepend 1 item (delta should be ~44px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 40 && output.offsetAfter - output.offsetBefore <= 48} # Reset - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-maintainvisible.yml index 719439b38d7f..ff86df5d49b5 100644 --- a/packages/rn-tester/.maestro/flatlist-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-maintainvisible.yml @@ -14,99 +14,99 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 # Verify delta is ~44px (one fixed-height item with margin) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} # Test multiple rapid prepends - Add 50 items - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 2000 # Verify delta is ~2200px (50 items with margin) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 2180 && output.offsetAfter - output.offsetBefore <= 2220} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 2180 && output.offsetAfter - output.offsetBefore <= 2220} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 2180 && output.offsetAfter - output.offsetBefore <= 2220} - tapOn: - text: "Reset" + text: 'Reset' --- # Test that user scroll is not interrupted during prepend appId: ${APP_ID} --- - launchApp -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 - swipe: @@ -114,15 +114,15 @@ appId: ${APP_ID} end: 50%, 30% speed: fast - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - tapOn: - text: "Reset" + text: 'Reset' diff --git a/packages/rn-tester/.maestro/flatlist-momentum-scroll-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-momentum-scroll-maintainvisible.yml index 931f83249022..dbf2fe96b2a7 100644 --- a/packages/rn-tester/.maestro/flatlist-momentum-scroll-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-momentum-scroll-maintainvisible.yml @@ -9,33 +9,33 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 1 item - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 # Start momentum scroll (swipe up quickly) @@ -48,17 +48,17 @@ appId: ${APP_ID} timeout: 5000 # Record offset after momentum settles - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Verify position hasn't drifted — delta should still be ~44px # (MVCP correction applied before momentum started, position should be stable) - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} # Reset - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-orientation-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-orientation-maintainvisible.yml index cf6dfd19d11e..003946fa209b 100644 --- a/packages/rn-tester/.maestro/flatlist-orientation-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-orientation-maintainvisible.yml @@ -13,24 +13,24 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 100 (within scrollable range) - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Change orientation to landscape @@ -39,15 +39,15 @@ appId: ${APP_ID} timeout: 3000 # Prepend — MVCP should still work after orientation change - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 # Verify delta is ~44px (40px item + 4px margin) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} # Change back to portrait @@ -56,24 +56,24 @@ appId: ${APP_ID} timeout: 3000 # Prepend again — verify MVCP works in portrait too - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-prepend-delete-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-prepend-delete-maintainvisible.yml index afe242801c8d..f0a27be47b05 100644 --- a/packages/rn-tester/.maestro/flatlist-prepend-delete-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-prepend-delete-maintainvisible.yml @@ -11,44 +11,44 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 100 - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend+delete - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 1 item and remove 3 from bottom in same batch (net -2 items) - tapOn: - text: "Add + Remove (net -2)" + text: 'Add + Remove (net -2)' # Wait for layout + MVCP correction to complete - waitForAnimationToEnd: timeout: 3000 # Read offset multiple times to ensure we get the settled value - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter2 = parseInt(maestro.copiedText.split(":")[1].trim())} # Use the later value if it's different (indicates settling) - evalScript: ${output.offsetAfter = output.offsetAfter2 || output.offsetAfter} @@ -57,10 +57,10 @@ appId: ${APP_ID} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 40 && output.offsetAfter - output.offsetBefore <= 50} # Reset - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-pull-to-refresh-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-pull-to-refresh-maintainvisible.yml index 489a0ee025f7..2fe197270ae9 100644 --- a/packages/rn-tester/.maestro/flatlist-pull-to-refresh-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-pull-to-refresh-maintainvisible.yml @@ -6,29 +6,29 @@ appId: ${APP_ID} - setOrientation: portrait - waitForAnimationToEnd: timeout: 3000 -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 200 - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Scroll to top (simulates pull-to-refresh pull) - swipe: @@ -39,14 +39,14 @@ appId: ${APP_ID} timeout: 2000 # Add items at top (simulates refresh with new data) - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 # Record offset after prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Delta should be ~44px (one item with margin) - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - tapOn: - text: "Reset" + text: 'Reset' diff --git a/packages/rn-tester/.maestro/flatlist-rapid-prepends-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-rapid-prepends-maintainvisible.yml index 0a806a74bad2..0f126d5f6646 100644 --- a/packages/rn-tester/.maestro/flatlist-rapid-prepends-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-rapid-prepends-maintainvisible.yml @@ -9,56 +9,56 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before rapid prepends - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Fire 5 rapid prepends without any waits between - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' # Wait for everything to settle (all mounts + MVCP corrections + layout) - waitForAnimationToEnd: timeout: 10000 # Record offset after everything settles - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} # Total delta should be approximately 50*5*44 = 11000px - assertTrue: ${output.offsetAfter - output.offsetBefore >= 10800 && output.offsetAfter - output.offsetBefore <= 11200} # Reset - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-recycle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-recycle-maintainvisible.yml index 0c49fe79f900..0706607843b1 100644 --- a/packages/rn-tester/.maestro/flatlist-recycle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-recycle-maintainvisible.yml @@ -9,65 +9,65 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable recycling (windowSize=3) - tapOn: - text: "Recycle: OFF" + text: 'Recycle: OFF' - waitForAnimationToEnd: timeout: 3000 # Scroll to offset 500 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Record offset before 50-item prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 50 items (delta should be ~2200px = 50 * 44) - tapOn: - text: "Add 50 items at top" + text: 'Add 50 items at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 2100 && output.offsetAfter - output.offsetBefore <= 2300} # Prepend 1 item (delta should be ~44px) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 40 && output.offsetAfter - output.offsetBefore <= 48} # Reset - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-scrolltooffset-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-scrolltooffset-maintainvisible.yml index deb86e0b057c..8a5b077c5702 100644 --- a/packages/rn-tester/.maestro/flatlist-scrolltooffset-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-scrolltooffset-maintainvisible.yml @@ -10,69 +10,69 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Scroll to offset 100 (within scrollable range for 20 items) - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Record offset before prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} # Prepend 1 item — offset should increase by ~44px - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} # Now call scrollToOffset(100) — should land at ~100, NOT ~100 + MVCP delta - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Verify scroll position is approximately 100 (not 100 + 44 = 144) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.scrollToOffsetResult = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.scrollToOffsetResult >= 90 && output.scrollToOffsetResult <= 110} # Prepend again after scrollToOffset — verify MVCP still works correctly - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-throttle-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-throttle-maintainvisible.yml index 273469102746..945a8032a094 100644 --- a/packages/rn-tester/.maestro/flatlist-throttle-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-throttle-maintainvisible.yml @@ -8,51 +8,51 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable throttle (500ms) - tapOn: - text: "Throttle: 16ms" + text: 'Throttle: 16ms' - waitForAnimationToEnd: timeout: 2000 # Scroll to offset 100 - tapOn: - text: "ScrollToOffset 100" + text: 'ScrollToOffset 100' - waitForAnimationToEnd: timeout: 2000 # Prepend with throttle enabled - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 42 && output.offsetAfter - output.offsetBefore <= 46} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-variable-height-first-prepend-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-variable-height-first-prepend-maintainvisible.yml index d4fc01cc8b8b..4409227b9275 100644 --- a/packages/rn-tester/.maestro/flatlist-variable-height-first-prepend-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-variable-height-first-prepend-maintainvisible.yml @@ -8,74 +8,74 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable variable height mode - tapOn: - text: "Height: Fixed" + text: 'Height: Fixed' - waitForAnimationToEnd: timeout: 2000 # Scroll to item 10 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Single prepend with variable height — test first prepend specifically - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} # Multiple prepends with variable heights - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/flatlist-variable-height-maintainvisible.yml b/packages/rn-tester/.maestro/flatlist-variable-height-maintainvisible.yml index 7137afc27057..0f5580e09090 100644 --- a/packages/rn-tester/.maestro/flatlist-variable-height-maintainvisible.yml +++ b/packages/rn-tester/.maestro/flatlist-variable-height-maintainvisible.yml @@ -8,74 +8,74 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "FlatList" + id: 'FlatList' direction: DOWN speed: 40 - tapOn: - id: "FlatList" + id: 'FlatList' - scrollUntilVisible: element: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' direction: DOWN speed: 40 - tapOn: - id: "maintainVisibleContentPosition" + id: 'maintainVisibleContentPosition' # Enable variable height mode - tapOn: - text: "Height: Fixed" + text: 'Height: Fixed' - waitForAnimationToEnd: timeout: 2000 # Scroll to item 10 - tapOn: - text: "ScrollToOffset 500" + text: 'ScrollToOffset 500' - waitForAnimationToEnd: timeout: 2000 # Single prepend with variable height - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} # Multiple prepends with variable heights - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 28 && output.offsetAfter - output.offsetBefore <= 112} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/scrollview-minindex-maintainvisible.yml b/packages/rn-tester/.maestro/scrollview-minindex-maintainvisible.yml index 512a55fd7b5b..0925eda988fe 100644 --- a/packages/rn-tester/.maestro/scrollview-minindex-maintainvisible.yml +++ b/packages/rn-tester/.maestro/scrollview-minindex-maintainvisible.yml @@ -8,19 +8,19 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "ScrollViewMaintainVisibleContentPositionExample" + id: 'ScrollViewMaintainVisibleContentPositionExample' direction: DOWN speed: 80 - tapOn: - id: "ScrollViewMaintainVisibleContentPositionExample" + id: 'ScrollViewMaintainVisibleContentPositionExample' - waitForAnimationToEnd: timeout: 2000 # Set minIndexForVisible to 0 - tapOn: - text: "minIndex: 0" + text: 'minIndex: 0' - waitForAnimationToEnd: timeout: 1000 # Scroll down in ScrollView to reach item 10 area @@ -32,36 +32,36 @@ appId: ${APP_ID} timeout: 2000 # Prepend - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 38 && output.offsetAfter - output.offsetBefore <= 44} # Multiple prepends - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 38 && output.offsetAfter - output.offsetBefore <= 44} - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} diff --git a/packages/rn-tester/.maestro/scrollview-threshold-maintainvisible.yml b/packages/rn-tester/.maestro/scrollview-threshold-maintainvisible.yml index d49ab8d79648..c865c3cb26e9 100644 --- a/packages/rn-tester/.maestro/scrollview-threshold-maintainvisible.yml +++ b/packages/rn-tester/.maestro/scrollview-threshold-maintainvisible.yml @@ -8,19 +8,19 @@ appId: ${APP_ID} - waitForAnimationToEnd: timeout: 3000 # Find test -- assertVisible: "Components" +- assertVisible: 'Components' - scrollUntilVisible: element: - id: "ScrollViewMaintainVisibleContentPositionExample" + id: 'ScrollViewMaintainVisibleContentPositionExample' direction: DOWN speed: 80 - tapOn: - id: "ScrollViewMaintainVisibleContentPositionExample" + id: 'ScrollViewMaintainVisibleContentPositionExample' - waitForAnimationToEnd: timeout: 2000 # Disable threshold - tapOn: - text: "Threshold: OFF" + text: 'Threshold: OFF' - waitForAnimationToEnd: timeout: 1000 # Scroll down in ScrollView to reach item 10 area @@ -32,41 +32,41 @@ appId: ${APP_ID} timeout: 2000 # Prepend without threshold - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 3000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter - output.offsetBefore >= 38 && output.offsetAfter - output.offsetBefore <= 44} # Enable threshold - tapOn: - text: "Threshold: 100" + text: 'Threshold: 100' - waitForAnimationToEnd: timeout: 1000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Reset" + text: 'Reset' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter >= 0 && output.offsetAfter <= 50} # Prepend with threshold enabled (offset ~0 <= threshold 100, should scroll to top) - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetBefore = parseInt(maestro.copiedText.split(":")[1].trim())} - tapOn: - text: "Add 1 item at top" + text: 'Add 1 item at top' - waitForAnimationToEnd: timeout: 2000 - copyTextFrom: - id: "scroll-offset-display" + id: 'scroll-offset-display' - evalScript: ${output.offsetAfter = parseInt(maestro.copiedText.split(":")[1].trim())} - assertTrue: ${output.offsetAfter <= 10} diff --git a/packages/virtualized-lists/__docs__/DESIGN.md b/packages/virtualized-lists/__docs__/DESIGN.md index 7775270c5466..5c42458a4843 100644 --- a/packages/virtualized-lists/__docs__/DESIGN.md +++ b/packages/virtualized-lists/__docs__/DESIGN.md @@ -765,8 +765,8 @@ the current implementation. ### 8.1 JS Cell Metrics — Orientation Change Handling The `_cellMetrics` Map stores per-cell layout info keyed by cell ID. When -orientation changes, the metric coordinate system flips (horizontal ↔ -vertical), making all stored metrics invalid. +orientation changes, the metric coordinate system flips (horizontal ↔ vertical), +making all stored metrics invalid. **Why the Map must be cleared (not just counters):** Clearing `_cellMetrics` is necessary because the counters alone don't prevent stale entries from being