From 1677bf531e899d4c3112d4944b00ac2d83e5611b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 13 Oct 2026 02:28:20 +0200 Subject: [PATCH 1/4] test(replay): verify Settings search focus and bound iOS discovery --- .../replays/android/emulator/04-text-input-keyboard.ad | 10 +++++++--- .../replays/ios/simulator/03-scroll-discovery.ad | 4 ++-- .../replays/ios/simulator/04-text-input-keyboard.ad | 7 +++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/test/integration/replays/android/emulator/04-text-input-keyboard.ad b/test/integration/replays/android/emulator/04-text-input-keyboard.ad index 4dbdc1c01c..360704ae75 100644 --- a/test/integration/replays/android/emulator/04-text-input-keyboard.ad +++ b/test/integration/replays/android/emulator/04-text-input-keyboard.ad @@ -4,14 +4,18 @@ context platform=android open settings --relaunch snapshot -i -click @e2 -wait 1000 +click 'text="Search Settings"' +wait 'role=text-field focused=true' 5000 +is focused 'role=text-field' +screenshot "./test/screenshots/replays/android-search-focused.png" snapshot -i keyboard status type "Display" -wait 1000 +wait 'role=text-field value="Display"' 5000 +is focused 'role=text-field value="Display"' +screenshot "./test/screenshots/replays/android-search-typed.png" snapshot -i screenshot "./test/screenshots/replays/android-search-results.png" diff --git a/test/integration/replays/ios/simulator/03-scroll-discovery.ad b/test/integration/replays/ios/simulator/03-scroll-discovery.ad index 2646c29e9b..fd6d9f1250 100644 --- a/test/integration/replays/ios/simulator/03-scroll-discovery.ad +++ b/test/integration/replays/ios/simulator/03-scroll-discovery.ad @@ -2,10 +2,10 @@ context platform=ios target=mobile open com.apple.Preferences --relaunch -scroll down 3 +scroll down --until 'label=Accessibility' wait 500 find text "Accessibility" exists -scroll up 3 +scroll up --until 'label=General' wait 500 find text "General" exists diff --git a/test/integration/replays/ios/simulator/04-text-input-keyboard.ad b/test/integration/replays/ios/simulator/04-text-input-keyboard.ad index a9f04c26d8..5740a652af 100644 --- a/test/integration/replays/ios/simulator/04-text-input-keyboard.ad +++ b/test/integration/replays/ios/simulator/04-text-input-keyboard.ad @@ -3,9 +3,12 @@ context platform=ios target=mobile open com.apple.Preferences --relaunch click "role=searchField || label=Search || label=\"Search\"" -wait 1000 +wait 'editable=true focused=true' +is focused 'editable=true' type "General" -wait 1000 +wait 'editable=true value="General"' +is focused 'editable=true value="General"' +screenshot "./test/screenshots/replays/ios-search-results.png" find text "General" exists From f8def41402e3a0d2f652f8f07b871437455fb373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 13 Oct 2026 11:13:46 +0200 Subject: [PATCH 2/4] test(replay): require iOS Settings scroll discovery gestures --- .../replays/ios/simulator/03-scroll-discovery.ad | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/integration/replays/ios/simulator/03-scroll-discovery.ad b/test/integration/replays/ios/simulator/03-scroll-discovery.ad index fd6d9f1250..801a6e0eb0 100644 --- a/test/integration/replays/ios/simulator/03-scroll-discovery.ad +++ b/test/integration/replays/ios/simulator/03-scroll-discovery.ad @@ -2,10 +2,11 @@ context platform=ios target=mobile open com.apple.Preferences --relaunch -scroll down --until 'label=Accessibility' -wait 500 -find text "Accessibility" exists +is visible 'label=General' +is absent 'label=Apps' +scroll down --until 'label=Apps' +is visible 'label=Apps' +is absent 'label=General' scroll up --until 'label=General' -wait 500 -find text "General" exists +is visible 'label=General' From 5886051baf52fc56079376a05c4a9f7b6bf24a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 13 Oct 2026 13:20:44 +0200 Subject: [PATCH 3/4] test(replay): target Settings cells for scroll discovery --- .../replays/ios/simulator/03-scroll-discovery.ad | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/integration/replays/ios/simulator/03-scroll-discovery.ad b/test/integration/replays/ios/simulator/03-scroll-discovery.ad index 801a6e0eb0..d1cb880645 100644 --- a/test/integration/replays/ios/simulator/03-scroll-discovery.ad +++ b/test/integration/replays/ios/simulator/03-scroll-discovery.ad @@ -2,11 +2,11 @@ context platform=ios target=mobile open com.apple.Preferences --relaunch -is visible 'label=General' -is absent 'label=Apps' -scroll down --until 'label=Apps' -is visible 'label=Apps' +is visible 'role=cell label=General' +is absent 'role=cell label=Apps' +scroll down --until 'role=cell label=Apps' +is visible 'role=cell label=Apps' -is absent 'label=General' -scroll up --until 'label=General' -is visible 'label=General' +is absent 'role=cell label=General' +scroll up --until 'role=cell label=General' +is visible 'role=cell label=General' From cbae29ea9a983e070cc60a58cc9d18093329f503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 13 Oct 2026 15:02:46 +0200 Subject: [PATCH 4/4] test(ios): observe keyboard readiness and Settings buttons --- test/integration/ios-simulator-e2e/live-runner.ts | 2 ++ .../replays/ios/simulator/03-scroll-discovery.ad | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/test/integration/ios-simulator-e2e/live-runner.ts b/test/integration/ios-simulator-e2e/live-runner.ts index 7f4511f423..d01b2f1025 100644 --- a/test/integration/ios-simulator-e2e/live-runner.ts +++ b/test/integration/ios-simulator-e2e/live-runner.ts @@ -10,6 +10,7 @@ import { assertPngFile } from '../provider-scenarios/assertions.ts'; import { assertFilesDiffer, assertJsonContains, + assertWaitSelector, assertWaitText, capturePng, requireNodeRect, @@ -344,6 +345,7 @@ async function assertFormInput(context: LiveContext): Promise { String(emailRect.x + emailRect.width / 2), String(emailRect.y + emailRect.height / 2), ]); + await assertWaitSelector(context, 'role="keyboard" visible=true', { debug: true }); const typedSuffix = await runStep(context, 'append email suffix from coordinate focus', [ 'type', '.test', diff --git a/test/integration/replays/ios/simulator/03-scroll-discovery.ad b/test/integration/replays/ios/simulator/03-scroll-discovery.ad index d1cb880645..0f71a36cc0 100644 --- a/test/integration/replays/ios/simulator/03-scroll-discovery.ad +++ b/test/integration/replays/ios/simulator/03-scroll-discovery.ad @@ -2,11 +2,11 @@ context platform=ios target=mobile open com.apple.Preferences --relaunch -is visible 'role=cell label=General' -is absent 'role=cell label=Apps' -scroll down --until 'role=cell label=Apps' -is visible 'role=cell label=Apps' +is visible 'role=button label=General' +is absent 'role=button label=Apps' +scroll down --until 'role=button label=Apps' +is visible 'role=button label=Apps' -is absent 'role=cell label=General' -scroll up --until 'role=cell label=General' -is visible 'role=cell label=General' +is absent 'role=button label=General' +scroll up --until 'role=button label=General' +is visible 'role=button label=General'