diff --git a/.gitignore b/.gitignore index 7d511d167..0ed153df0 100644 --- a/.gitignore +++ b/.gitignore @@ -91,6 +91,7 @@ nitrogen/ # Maestro screenshot diffs .maestro/**/*_diff.png +reports/ # Claude skills .claude/skills/*-internal.md \ No newline at end of file diff --git a/.maestro/enrichedInput/flows/checkbox_toggle.yaml b/.maestro/enrichedInput/flows/checkbox_toggle.yaml index d49957cf4..0d350e689 100644 --- a/.maestro/enrichedInput/flows/checkbox_toggle.yaml +++ b/.maestro/enrichedInput/flows/checkbox_toggle.yaml @@ -11,13 +11,22 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-checkbox-list" -- inputText: "Item one" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Item one" - pressKey: Enter -- inputText: "Item two" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Item two" - pressKey: Enter - pressKey: Backspace -- inputText: "Plain text" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Plain text" - pressKey: Enter - tapOn: diff --git a/.maestro/enrichedInput/flows/codeblock_no_link_detection.yaml b/.maestro/enrichedInput/flows/codeblock_no_link_detection.yaml index 585913519..8840d54c3 100644 --- a/.maestro/enrichedInput/flows/codeblock_no_link_detection.yaml +++ b/.maestro/enrichedInput/flows/codeblock_no_link_detection.yaml @@ -12,7 +12,10 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-code-block" -- inputText: "Hello example.com" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Hello example.com" - assertVisible: id: "toolbar-link" diff --git a/.maestro/enrichedInput/flows/codeblock_style_blocking.yaml b/.maestro/enrichedInput/flows/codeblock_style_blocking.yaml index 962b2f769..708851235 100644 --- a/.maestro/enrichedInput/flows/codeblock_style_blocking.yaml +++ b/.maestro/enrichedInput/flows/codeblock_style_blocking.yaml @@ -14,7 +14,10 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-code-block" -- inputText: "ABC example.com" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "ABC example.com" - assertVisible: id: "toolbar-bold" diff --git a/.maestro/enrichedInput/flows/conflicting_paragraph_merge.yaml b/.maestro/enrichedInput/flows/conflicting_paragraph_merge.yaml index 6ed6ff1e3..cd1bb1f74 100644 --- a/.maestro/enrichedInput/flows/conflicting_paragraph_merge.yaml +++ b/.maestro/enrichedInput/flows/conflicting_paragraph_merge.yaml @@ -11,14 +11,20 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-code-block" -- inputText: "Code text" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Code text" - pressKey: Enter - tapOn: id: "toolbar-code-block" - tapOn: id: "toolbar-heading-1" -- inputText: "H1" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "H1" # Position cursor at start of H1 line - tapOn: @@ -30,7 +36,10 @@ appId: swmansion.enriched.example - runFlow: commands: - pressKey: Backspace -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "editor-input" @@ -42,14 +51,20 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-inline-code" -- inputText: "Inline code" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Inline code" - tapOn: id: "editor-input" point: "5%, 75%" - pressKey: Backspace -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - runFlow: file: "../subflows/capture_or_assert_screenshot.yaml" diff --git a/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_copy.yaml b/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_copy.yaml index 9b8dde963..6e5be43c9 100644 --- a/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_copy.yaml +++ b/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_copy.yaml @@ -1,45 +1,65 @@ appId: swmansion.enriched.example tags: - - android-only + - android-only --- - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "focus-button" + id: 'focus-button' -- inputText: "EADING" -- doubleTapOn: - id: "editor-input" - point: "10%, 50%" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'EADING' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '10%, 50%' +- runFlow: + when: + platform: Android + commands: + - tapOn: + id: 'editor-input' + point: '10%, 50%' + - tapOn: + id: 'editor-input' + point: '10%, 50%' - tapOn: - id: "android:id/floating_toolbar_menu_item_text" - text: "Copy" + id: 'android:id/floating_toolbar_menu_item_text' + text: 'Copy' # Dismiss toolbar with Copy/Cut etc. options - tapOn: - id: "editor-input" + id: 'editor-input' - tapOn: - id: "clear-button" + id: 'clear-button' - tapOn: - id: "focus-button" + id: 'focus-button' - tapOn: - id: "toolbar-heading-1" + id: 'toolbar-heading-1' -- inputText: "H" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H' - longPressOn: - id: "editor-input" - point: "50%, 50%" + id: 'editor-input' + point: '50%, 50%' - tapOn: - id: "android:id/floating_toolbar_menu_item_text" - text: "Paste" + id: 'android:id/floating_toolbar_menu_item_text' + text: 'Paste' - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "extending_paragraph_style_on_paste_after_copy" + SCREENSHOT_NAME: 'extending_paragraph_style_on_paste_after_copy' diff --git a/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_cut.yaml b/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_cut.yaml index 7f6d54852..e811aa176 100644 --- a/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_cut.yaml +++ b/.maestro/enrichedInput/flows/extending_paragraph_style_on_paste_after_cut.yaml @@ -1,37 +1,57 @@ appId: swmansion.enriched.example tags: - - android-only + - android-only --- - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "focus-button" + id: 'focus-button' -- inputText: "EADING" -- doubleTapOn: - id: "editor-input" - point: "10%, 50%" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'EADING' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '10%, 50%' +- runFlow: + when: + platform: Android + commands: + - tapOn: + id: 'editor-input' + point: '10%, 50%' + - tapOn: + id: 'editor-input' + point: '10%, 50%' - tapOn: - id: "android:id/floating_toolbar_menu_item_text" - text: "Cut" + id: 'android:id/floating_toolbar_menu_item_text' + text: 'Cut' - tapOn: - id: "toolbar-heading-1" + id: 'toolbar-heading-1' -- inputText: "H" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H' - longPressOn: - id: "editor-input" - point: "50%, 50%" + id: 'editor-input' + point: '50%, 50%' - tapOn: - id: "android:id/floating_toolbar_menu_item_text" - text: "Paste" + id: 'android:id/floating_toolbar_menu_item_text' + text: 'Paste' - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "extending_paragraph_style_on_paste_after_cut" + SCREENSHOT_NAME: 'extending_paragraph_style_on_paste_after_cut' diff --git a/.maestro/enrichedInput/flows/font_scaling.yaml b/.maestro/enrichedInput/flows/font_scaling.yaml index bbd06a669..81bbac47f 100644 --- a/.maestro/enrichedInput/flows/font_scaling.yaml +++ b/.maestro/enrichedInput/flows/font_scaling.yaml @@ -15,39 +15,69 @@ tags: - tapOn: id: "editor-input" -- inputText: "Plain " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Plain " - tapOn: id: "toolbar-bold" -- inputText: "bold" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "bold" - tapOn: id: "toolbar-bold" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-italic" -- inputText: "italic" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "italic" - tapOn: id: "toolbar-italic" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-underline" -- inputText: "underline" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "underline" - tapOn: id: "toolbar-underline" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-strikethrough" -- inputText: "strike-through" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "strike-through" - tapOn: id: "toolbar-strikethrough" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-inline-code" -- inputText: "code" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "code" - tapOn: id: "toolbar-inline-code" diff --git a/.maestro/enrichedInput/flows/html_link_not_extended.yaml b/.maestro/enrichedInput/flows/html_link_not_extended.yaml index ebacaddfe..4131a8a66 100644 --- a/.maestro/enrichedInput/flows/html_link_not_extended.yaml +++ b/.maestro/enrichedInput/flows/html_link_not_extended.yaml @@ -18,7 +18,10 @@ appId: swmansion.enriched.example id: "editor-input" point: "95%, 50%" -- inputText: " extra" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " extra" - runFlow: file: "../subflows/capture_or_assert_screenshot.yaml" diff --git a/.maestro/enrichedInput/flows/image_inside_list_parsing.yaml b/.maestro/enrichedInput/flows/image_inside_list_parsing.yaml index 8e20f5235..4eeb28185 100644 --- a/.maestro/enrichedInput/flows/image_inside_list_parsing.yaml +++ b/.maestro/enrichedInput/flows/image_inside_list_parsing.yaml @@ -21,6 +21,12 @@ appId: swmansion.enriched.example - tapOn: id: 'size-max-button' +# Force a delay to ensure the screenshot is loaded +- extendedWaitUntil: + visible: 'fake_element_to_force_delay' + optional: true + timeout: 5000 + - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' env: diff --git a/.maestro/enrichedInput/flows/image_position_stability.yaml b/.maestro/enrichedInput/flows/image_position_stability.yaml index c9ff9697e..423bfe189 100644 --- a/.maestro/enrichedInput/flows/image_position_stability.yaml +++ b/.maestro/enrichedInput/flows/image_position_stability.yaml @@ -6,40 +6,49 @@ appId: swmansion.enriched.example - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "size-max-button" + id: 'size-max-button' - tapOn: - id: "editor-input" + id: 'editor-input' -- inputText: "Paragraph one" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Paragraph one' - pressKey: Enter - pressKey: Enter -- inputText: "Paragraph two" - -- tapOn: - id: "editor-input" - point: "50%,50%" - -# cursor is now on the blank second line - -- runFlow: - file: "../subflows/insert_image.yaml" - - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../../subflows/input_text.yaml' env: - SCREENSHOT_NAME: "image_position_stability_before_typing" + TEXT: 'Paragraph two' - tapOn: - id: "editor-input" - point: "50%,50%" -- inputText: "Paragraph in the middle" + id: 'editor-input' + point: '50%,50%' +# cursor is now on the blank second line -- runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" - env: - SCREENSHOT_NAME: "image_position_stability_after_typing" +# TODO: uncomment when bug: https://github.com/devicelab-dev/maestro-runner/issues/131 will be fixed +# - runFlow: +# file: "../subflows/insert_image.yaml" + +# - runFlow: +# file: "../subflows/capture_or_assert_screenshot.yaml" +# env: +# SCREENSHOT_NAME: "image_position_stability_before_typing" + +# - tapOn: +# id: "editor-input" +# point: "50%,50%" +# - runFlow: +# file: '../../subflows/input_text.yaml' +# env: +# TEXT: "Paragraph in the middle" + +# - runFlow: +# file: "../subflows/capture_or_assert_screenshot.yaml" +# env: +# SCREENSHOT_NAME: "image_position_stability_after_typing" diff --git a/.maestro/enrichedInput/flows/inline_code_blocking_styles.yaml b/.maestro/enrichedInput/flows/inline_code_blocking_styles.yaml index 67dbfac76..debbe7356 100644 --- a/.maestro/enrichedInput/flows/inline_code_blocking_styles.yaml +++ b/.maestro/enrichedInput/flows/inline_code_blocking_styles.yaml @@ -14,7 +14,10 @@ appId: swmansion.enriched.example - waitForAnimationToEnd -- inputText: "snippet" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "snippet" - assertVisible: id: "toolbar-link" diff --git a/.maestro/enrichedInput/flows/inline_code_paste_into_codeblock.yaml b/.maestro/enrichedInput/flows/inline_code_paste_into_codeblock.yaml index 08be018fb..716ab5733 100644 --- a/.maestro/enrichedInput/flows/inline_code_paste_into_codeblock.yaml +++ b/.maestro/enrichedInput/flows/inline_code_paste_into_codeblock.yaml @@ -11,28 +11,56 @@ appId: swmansion.enriched.example - tapOn: id: 'toolbar-inline-code' -- inputText: 'code' -- tapOn: - id: 'toolbar-inline-code' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'code' -- pressKey: Enter -- tapOn: - id: 'toolbar-code-block' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '10%, 30%' +- runFlow: + when: + platform: Android + commands: + - tapOn: + id: 'editor-input' + point: '10%, 30%' + - tapOn: + id: 'editor-input' + point: '10%, 30%' -- doubleTapOn: +- tapOn: + text: 'Copy' +- tapOn: id: 'editor-input' - point: '10%, 30%' + point: '70%, 30%' - tapOn: - text: 'Copy' + id: 'toolbar-inline-code' +- pressKey: Enter - tapOn: - id: 'editor-input' - point: '10%, 70%' + id: 'toolbar-code-block' -- longPressOn: - id: 'editor-input' - point: '10%, 70%' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '10%, 70%' +- runFlow: + when: + platform: Android + commands: + - longPressOn: + id: 'editor-input' + point: '10%, 70%' - tapOn: text: 'Paste' diff --git a/.maestro/enrichedInput/flows/inline_styles_merge.yaml b/.maestro/enrichedInput/flows/inline_styles_merge.yaml index ea843121f..3cb1c3125 100644 --- a/.maestro/enrichedInput/flows/inline_styles_merge.yaml +++ b/.maestro/enrichedInput/flows/inline_styles_merge.yaml @@ -16,7 +16,10 @@ appId: swmansion.enriched.example - tapOn: id: 'toolbar-underline' -- inputText: 'First line' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'First line' - pressKey: Enter - tapOn: @@ -25,11 +28,14 @@ appId: swmansion.enriched.example id: 'toolbar-italic' - tapOn: id: 'toolbar-underline' -- inputText: 'Second line' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Second line' - tapOn: id: 'editor-input' - point: '5%,75%' + point: '1%,75%' - pressKey: Backspace diff --git a/.maestro/enrichedInput/flows/inline_styles_removal.yaml b/.maestro/enrichedInput/flows/inline_styles_removal.yaml index 58faf1d2f..c25ba8643 100644 --- a/.maestro/enrichedInput/flows/inline_styles_removal.yaml +++ b/.maestro/enrichedInput/flows/inline_styles_removal.yaml @@ -18,9 +18,15 @@ appId: swmansion.enriched.example - tapOn: id: 'toolbar-strikethrough' -- inputText: 'First line' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'First line' - pressKey: Enter -- inputText: 'Second line' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Second line' - tapOn: id: 'toolbar-code-block' diff --git a/.maestro/enrichedInput/flows/inline_styles_survive_block_toggle.yaml b/.maestro/enrichedInput/flows/inline_styles_survive_block_toggle.yaml index b2e5bfb94..54498b540 100644 --- a/.maestro/enrichedInput/flows/inline_styles_survive_block_toggle.yaml +++ b/.maestro/enrichedInput/flows/inline_styles_survive_block_toggle.yaml @@ -11,11 +11,17 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-bold" -- inputText: "Bold" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Bold" - tapOn: id: "toolbar-bold" -- inputText: " regular" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " regular" - tapOn: id: "toolbar-quote" diff --git a/.maestro/enrichedInput/flows/inline_styles_visual.yaml b/.maestro/enrichedInput/flows/inline_styles_visual.yaml index f8f2719a9..21897a7a4 100644 --- a/.maestro/enrichedInput/flows/inline_styles_visual.yaml +++ b/.maestro/enrichedInput/flows/inline_styles_visual.yaml @@ -8,39 +8,69 @@ appId: swmansion.enriched.example - tapOn: id: "editor-input" -- inputText: "Plain " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Plain " - tapOn: id: "toolbar-bold" -- inputText: "bold" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "bold" - tapOn: id: "toolbar-bold" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-italic" -- inputText: "italic" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "italic" - tapOn: id: "toolbar-italic" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-underline" -- inputText: "underline" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "underline" - tapOn: id: "toolbar-underline" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-strikethrough" -- inputText: "strike-through" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "strike-through" - tapOn: id: "toolbar-strikethrough" -- inputText: " " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: " " - tapOn: id: "toolbar-inline-code" -- inputText: "code" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "code" - tapOn: id: "toolbar-inline-code" diff --git a/.maestro/enrichedInput/flows/line_overlapping.yaml b/.maestro/enrichedInput/flows/line_overlapping.yaml index 575106055..945d3345d 100644 --- a/.maestro/enrichedInput/flows/line_overlapping.yaml +++ b/.maestro/enrichedInput/flows/line_overlapping.yaml @@ -10,15 +10,30 @@ appId: swmansion.enriched.example id: 'editor-input' - pressKey: Enter -- inputText: 'Line one' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line one' - pressKey: Enter -- inputText: 'Line two' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line two' - pressKey: Enter -- inputText: 'Line three' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line three' - pressKey: Enter -- inputText: 'Line four' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line four' - pressKey: Enter -- inputText: 'Line five' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line five' # Tap on the first line to position cursor there - tapOn: @@ -28,11 +43,17 @@ appId: swmansion.enriched.example - tapOn: id: 'toolbar-bold' -- inputText: 'bold' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'bold' - pressKey: Enter - pressKey: Enter - pressKey: Enter -- inputText: 'bold2' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'bold2' - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedInput/flows/link_not_extended.yaml b/.maestro/enrichedInput/flows/link_not_extended.yaml index a7de9075d..1ff36f6dc 100644 --- a/.maestro/enrichedInput/flows/link_not_extended.yaml +++ b/.maestro/enrichedInput/flows/link_not_extended.yaml @@ -10,7 +10,10 @@ appId: swmansion.enriched.example - tapOn: id: "editor-input" -- inputText: "Hello " +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Hello " - runFlow: file: "../subflows/insert_link.yaml" @@ -25,7 +28,10 @@ appId: swmansion.enriched.example id: "editor-input" point: "95%, 50%" -- inputText: "ing" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "ing" - runFlow: file: "../subflows/capture_or_assert_screenshot.yaml" diff --git a/.maestro/enrichedInput/flows/links_visual.yaml b/.maestro/enrichedInput/flows/links_visual.yaml index bf3ad4c47..f26ec2a4f 100644 --- a/.maestro/enrichedInput/flows/links_visual.yaml +++ b/.maestro/enrichedInput/flows/links_visual.yaml @@ -7,14 +7,31 @@ appId: swmansion.enriched.example id: 'toggle-screen-button' - tapOn: - id: "editor-input" + id: 'editor-input' # autolinks break on text change or paste -- inputText: 'swmansion.com' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'swmansion.com' -- doubleTapOn: - id: 'editor-input' - point: '20%, 50%' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '20%, 50%' +- runFlow: + when: + platform: Android + commands: + - tapOn: + id: 'editor-input' + point: '20%, 50%' + - tapOn: + id: 'editor-input' + point: '20%, 50%' - tapOn: text: 'Copy' @@ -28,15 +45,11 @@ appId: swmansion.enriched.example point: '50%, 70%' - tapOn: text: 'Paste' -- inputText: 'm' -- pressKey: Enter -- inputText: 'swm' -- longPressOn: - id: 'editor-input' - point: '50%, 75%' -- tapOn: - text: 'Paste' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'm' - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' @@ -49,9 +62,23 @@ appId: swmansion.enriched.example env: VALUE: '

example.com

' -- doubleTapOn: - id: 'editor-input' - point: '20%, 50%' +- runFlow: + when: + platform: iOS + commands: + - doubleTapOn: + id: 'editor-input' + point: '20%, 50%' +- runFlow: + when: + platform: Android + commands: + - tapOn: + id: 'editor-input' + point: '20%, 50%' + - tapOn: + id: 'editor-input' + point: '20%, 50%' - tapOn: text: 'Copy' diff --git a/.maestro/enrichedInput/flows/list_newline_insertion.yaml b/.maestro/enrichedInput/flows/list_newline_insertion.yaml index 79e0dfd1b..84a57084c 100644 --- a/.maestro/enrichedInput/flows/list_newline_insertion.yaml +++ b/.maestro/enrichedInput/flows/list_newline_insertion.yaml @@ -16,7 +16,10 @@ appId: swmansion.enriched.example when: platform: android commands: - - inputText: "XXXXXXXXXXXXXXXXXXXXXXXX" + - runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "XXXXXXXXXXXXXXXXXXXXXXXX" - tapOn: id: "editor-input" point: "50%,50%" @@ -29,7 +32,10 @@ appId: swmansion.enriched.example when: platform: ios commands: - - inputText: "XXXXXXXXXXX XXXXXXXXXXXXX" + - runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "XXXXXXXXXXX XXXXXXXXXXXXX" - tapOn: id: "editor-input" point: "50%,50%" diff --git a/.maestro/enrichedInput/flows/mention_popup_closing_on_cursor_travel.yaml b/.maestro/enrichedInput/flows/mention_popup_closing_on_cursor_travel.yaml index c3cf07e74..38e02cf8e 100644 --- a/.maestro/enrichedInput/flows/mention_popup_closing_on_cursor_travel.yaml +++ b/.maestro/enrichedInput/flows/mention_popup_closing_on_cursor_travel.yaml @@ -5,41 +5,44 @@ appId: swmansion.enriched.example - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "editor-input" + id: 'editor-input' -- inputText: "mentions #gen @J" +- runFlow: + file: '../subflows/set_editor_value.yaml' + env: + VALUE: 'mentions #gen @J' # user popup visible - runFlow: - file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml" + file: '../subflows/capture_or_assert_fullscreen_screenshot.yaml' env: - SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_1" + SCREENSHOT_NAME: 'mention_popup_closing_on_cursor_travel_1' - tapOn: - id: "focus-button" + id: 'focus-button' - tapOn: - id: "editor-input" - point: "30%, 50%" + id: 'editor-input' + point: '30%, 50%' # channel popup visible - runFlow: - file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml" + file: '../subflows/capture_or_assert_fullscreen_screenshot.yaml' env: - SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_2" + SCREENSHOT_NAME: 'mention_popup_closing_on_cursor_travel_2' - tapOn: - id: "focus-button" + id: 'focus-button' - tapOn: - id: "editor-input" - point: "10%, 50%" + id: 'editor-input' + point: '10%, 50%' # no popup visible - runFlow: - file: "../subflows/capture_or_assert_fullscreen_screenshot.yaml" + file: '../subflows/capture_or_assert_fullscreen_screenshot.yaml' env: - SCREENSHOT_NAME: "mention_popup_closing_on_cursor_travel_3" + SCREENSHOT_NAME: 'mention_popup_closing_on_cursor_travel_3' diff --git a/.maestro/enrichedInput/flows/ordered_list_renumbering.yaml b/.maestro/enrichedInput/flows/ordered_list_renumbering.yaml index 9865c2693..d0edf64c4 100644 --- a/.maestro/enrichedInput/flows/ordered_list_renumbering.yaml +++ b/.maestro/enrichedInput/flows/ordered_list_renumbering.yaml @@ -12,11 +12,20 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-ordered-list" -- inputText: "A" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "A" - pressKey: Enter -- inputText: "B" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "B" - pressKey: Enter -- inputText: "C" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "C" # Tap on the second line to position cursor there - tapOn: diff --git a/.maestro/enrichedInput/flows/paragraph_style_removal.yaml b/.maestro/enrichedInput/flows/paragraph_style_removal.yaml index c749a0054..81e31164f 100644 --- a/.maestro/enrichedInput/flows/paragraph_style_removal.yaml +++ b/.maestro/enrichedInput/flows/paragraph_style_removal.yaml @@ -14,11 +14,20 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-quote" -- inputText: "A" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "A" - pressKey: Enter -- inputText: "B" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "B" - pressKey: Enter -- inputText: "C" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "C" # Tap on the second line - tapOn: diff --git a/.maestro/enrichedInput/flows/paragraph_style_toggle.yaml b/.maestro/enrichedInput/flows/paragraph_style_toggle.yaml index 4e200abe0..c60e8d597 100644 --- a/.maestro/enrichedInput/flows/paragraph_style_toggle.yaml +++ b/.maestro/enrichedInput/flows/paragraph_style_toggle.yaml @@ -14,11 +14,20 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-quote" -- inputText: "1" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "1" - pressKey: Enter -- inputText: "2" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "2" - pressKey: Enter -- inputText: "3" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "3" # Tap on the second line - tapOn: diff --git a/.maestro/enrichedInput/flows/paragraph_styles_alignment_visual.yaml b/.maestro/enrichedInput/flows/paragraph_styles_alignment_visual.yaml index ae5d09c57..6ca09c40d 100644 --- a/.maestro/enrichedInput/flows/paragraph_styles_alignment_visual.yaml +++ b/.maestro/enrichedInput/flows/paragraph_styles_alignment_visual.yaml @@ -10,33 +10,51 @@ appId: swmansion.enriched.example id: 'editor-input' # Left-aligned text -- inputText: 'Left aligned' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Left aligned' - pressKey: Enter # Centre-aligned - tapOn: id: 'toolbar-align-center' -- inputText: 'Centre aligned' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Centre aligned' - pressKey: Enter # Heading 6 - tapOn: id: 'toolbar-heading-6' -- inputText: 'Heading 6' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Heading 6' - pressKey: Enter # Right-aligned text - tapOn: id: 'toolbar-align-right' -- inputText: 'Right aligned' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Right aligned' - pressKey: Enter # List with right-aligned items - tapOn: id: 'toolbar-ordered-list' -- inputText: 'Element 1' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Element 1' - pressKey: Enter -- inputText: 'Element 2' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Element 2' - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedInput/flows/paragraph_styles_blocks_visual.yaml b/.maestro/enrichedInput/flows/paragraph_styles_blocks_visual.yaml index 1a437c12f..f00637781 100644 --- a/.maestro/enrichedInput/flows/paragraph_styles_blocks_visual.yaml +++ b/.maestro/enrichedInput/flows/paragraph_styles_blocks_visual.yaml @@ -12,21 +12,36 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-quote" -- inputText: "Quote 1" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Quote 1" - pressKey: Enter -- inputText: "Quote 2" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Quote 2" - pressKey: Enter - tapOn: id: "toolbar-quote" -- inputText: "Normal paragraph" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Normal paragraph" - pressKey: Enter - tapOn: id: "toolbar-code-block" -- inputText: "Code 1" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Code 1" - pressKey: Enter -- inputText: "Code 2" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Code 2" - runFlow: file: "../subflows/capture_or_assert_screenshot.yaml" diff --git a/.maestro/enrichedInput/flows/paragraph_styles_headings_visual.yaml b/.maestro/enrichedInput/flows/paragraph_styles_headings_visual.yaml index 70c426fd4..c396b06a7 100644 --- a/.maestro/enrichedInput/flows/paragraph_styles_headings_visual.yaml +++ b/.maestro/enrichedInput/flows/paragraph_styles_headings_visual.yaml @@ -4,43 +4,61 @@ appId: swmansion.enriched.example - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "editor-input" + id: 'editor-input' - tapOn: - id: "toolbar-heading-1" -- inputText: "H1" + id: 'toolbar-heading-1' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H1' - pressKey: Enter - tapOn: - id: "toolbar-heading-2" -- inputText: "H2" + id: 'toolbar-heading-2' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H2' - pressKey: Enter - tapOn: - id: "toolbar-heading-3" -- inputText: "H3" + id: 'toolbar-heading-3' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H3' - pressKey: Enter - tapOn: - id: "toolbar-heading-4" -- inputText: "H4" + id: 'toolbar-heading-4' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H4' - pressKey: Enter - tapOn: - id: "toolbar-heading-5" -- inputText: "H5" + id: 'toolbar-heading-5' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H5' - pressKey: Enter - tapOn: - id: "toolbar-heading-6" -- inputText: "H6" + id: 'toolbar-heading-6' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'H6' - tapOn: - id: "size-max-button" + id: 'size-max-button' - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "paragraph_styles_headings" + SCREENSHOT_NAME: 'paragraph_styles_headings' diff --git a/.maestro/enrichedInput/flows/paragraph_styles_lists_visual.yaml b/.maestro/enrichedInput/flows/paragraph_styles_lists_visual.yaml index 4368ef3dc..3db909101 100644 --- a/.maestro/enrichedInput/flows/paragraph_styles_lists_visual.yaml +++ b/.maestro/enrichedInput/flows/paragraph_styles_lists_visual.yaml @@ -11,33 +11,57 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-ordered-list" -- inputText: "First" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "First" - pressKey: Enter -- inputText: "Second" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Second" - pressKey: Enter - tapOn: id: "toolbar-ordered-list" -- inputText: "Normal" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Normal" - pressKey: Enter - tapOn: id: "toolbar-unordered-list" -- inputText: "First" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "First" - pressKey: Enter -- inputText: "Second" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Second" - pressKey: Enter - tapOn: id: "toolbar-unordered-list" -- inputText: "Normal" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Normal" - pressKey: Enter - tapOn: id: "toolbar-checkbox-list" -- inputText: "First" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "First" - pressKey: Enter -- inputText: "Second" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Second" - tapOn: id: "size-max-button" diff --git a/.maestro/enrichedInput/flows/paragraph_styles_no_crash.yaml b/.maestro/enrichedInput/flows/paragraph_styles_no_crash.yaml index 4710b5257..88664c2de 100644 --- a/.maestro/enrichedInput/flows/paragraph_styles_no_crash.yaml +++ b/.maestro/enrichedInput/flows/paragraph_styles_no_crash.yaml @@ -11,42 +11,60 @@ appId: swmansion.enriched.example - tapOn: id: "toolbar-unordered-list" -- inputText: "Unordered" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Unordered" - pressKey: Enter - tapOn: id: "toolbar-unordered-list" - tapOn: id: "toolbar-ordered-list" -- inputText: "Ordered" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Ordered" - pressKey: Enter - tapOn: id: "toolbar-ordered-list" - tapOn: id: "toolbar-checkbox-list" -- inputText: "Checkbox" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Checkbox" - pressKey: Enter - tapOn: id: "toolbar-checkbox-list" - tapOn: id: "toolbar-code-block" -- inputText: "Code" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Code" - pressKey: Enter - tapOn: id: "toolbar-code-block" - tapOn: id: "toolbar-quote" -- inputText: "Quote" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Quote" - pressKey: Enter - tapOn: id: "toolbar-quote" - tapOn: id: "toolbar-heading-1" -- inputText: "Heading" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: "Heading" - assertVisible: id: "editor-input" diff --git a/.maestro/enrichedInput/flows/scrolling_after_typing.yaml b/.maestro/enrichedInput/flows/scrolling_after_typing.yaml index e4711a8d4..ab02e4409 100644 --- a/.maestro/enrichedInput/flows/scrolling_after_typing.yaml +++ b/.maestro/enrichedInput/flows/scrolling_after_typing.yaml @@ -1,67 +1,90 @@ appId: swmansion.enriched.example -# Tests basic scrollability +# Tests basic scrollability --- - - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "editor-input" + id: 'editor-input' -- inputText: "Line one" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line one' - pressKey: Enter -- inputText: "Line two" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line two' - pressKey: Enter -- inputText: "Line three" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line three' - pressKey: Enter -- inputText: "Line four" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line four' - pressKey: Enter -- inputText: "Line five" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line five' - pressKey: Enter -- inputText: "Line six" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line six' - pressKey: Enter -- inputText: "Line seven" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line seven' - pressKey: Enter -- inputText: "Line eight" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line eight' - pressKey: Enter -- inputText: "Line nine" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Line nine' - pressKey: Enter -- inputText: "Line ten" - - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../../subflows/input_text.yaml' env: - SCREENSHOT_NAME: "scroll_after_typing_long_content_bottom" - -- tapOn: - id: "focus-button" + TEXT: 'Line ten' - swipe: from: - id: "editor-input" + id: 'editor-input' direction: DOWN - waitForAnimationToEnd - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "scroll_after_typing_long_content_top" + SCREENSHOT_NAME: 'scroll_after_typing_long_content_top' - tapOn: - id: "editor-input" - point: "0%,0%" + id: 'editor-input' + point: '0%,0%' - swipe: from: - id: "editor-input" + id: 'editor-input' direction: UP +- tapOn: + id: 'blur-button' - waitForAnimationToEnd - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "scroll_after_typing_long_content_bottom" + SCREENSHOT_NAME: 'scroll_after_typing_long_content_bottom' diff --git a/.maestro/enrichedInput/flows/scrolling_with_paragraph_styles.yaml b/.maestro/enrichedInput/flows/scrolling_with_paragraph_styles.yaml index 96e987fe1..579b5ac14 100644 --- a/.maestro/enrichedInput/flows/scrolling_with_paragraph_styles.yaml +++ b/.maestro/enrichedInput/flows/scrolling_with_paragraph_styles.yaml @@ -4,71 +4,104 @@ appId: swmansion.enriched.example - launchApp - tapOn: - id: "toggle-screen-button" + id: 'toggle-screen-button' - tapOn: - id: "editor-input" + id: 'editor-input' - tapOn: - id: "toolbar-unordered-list" -- inputText: "Bullet item one" + id: 'toolbar-unordered-list' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Bullet item one' - pressKey: Enter -- inputText: "Bullet item two" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Bullet item two' - pressKey: Enter -- inputText: "Bullet item three" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Bullet item three' - pressKey: Enter - pressKey: Enter - tapOn: - id: "toolbar-quote" -- inputText: "Quoted line one" + id: 'toolbar-quote' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Quoted line one' - pressKey: Enter -- inputText: "Quoted line two" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Quoted line two' - pressKey: Enter -- inputText: "Quoted line three" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Quoted line three' - pressKey: Enter - tapOn: - id: "toolbar-quote" + id: 'toolbar-quote' - tapOn: - id: "toolbar-ordered-list" -- inputText: "Numbered item one" + id: 'toolbar-ordered-list' +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Numbered item one' - pressKey: Enter -- inputText: "Numbered item two" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Numbered item two' - pressKey: Enter -- inputText: "Numbered item three" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Numbered item three' - pressKey: Enter - pressKey: Enter - pressKey: Backspace -- inputText: "Plain text line one" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Plain text line one' - pressKey: Enter -- inputText: "Plain text final" +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: 'Plain text final' - swipe: from: - id: "editor-input" + id: 'editor-input' direction: DOWN - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "scrolling_paragraph_styles_top" + SCREENSHOT_NAME: 'scrolling_paragraph_styles_top' - tapOn: - id: "focus-button" + id: 'focus-button' - tapOn: - id: "editor-input" - point: "0%,0%" + id: 'editor-input' + point: '0%,0%' - swipe: from: - id: "editor-input" + id: 'editor-input' direction: UP - runFlow: - file: "../subflows/capture_or_assert_screenshot.yaml" + file: '../subflows/capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "scrolling_paragraph_styles_bottom" + SCREENSHOT_NAME: 'scrolling_paragraph_styles_bottom' diff --git a/.maestro/enrichedInput/screenshots/android/checkbox_toggle.png b/.maestro/enrichedInput/screenshots/android/checkbox_toggle.png index b3b661a85..ade50fdba 100644 Binary files a/.maestro/enrichedInput/screenshots/android/checkbox_toggle.png and b/.maestro/enrichedInput/screenshots/android/checkbox_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/android/codeblock_no_link_detection.png b/.maestro/enrichedInput/screenshots/android/codeblock_no_link_detection.png index 78e27577d..4d09796ec 100644 Binary files a/.maestro/enrichedInput/screenshots/android/codeblock_no_link_detection.png and b/.maestro/enrichedInput/screenshots/android/codeblock_no_link_detection.png differ diff --git a/.maestro/enrichedInput/screenshots/android/codeblock_style_blocking.png b/.maestro/enrichedInput/screenshots/android/codeblock_style_blocking.png index 44ae70724..ee6f3c2be 100644 Binary files a/.maestro/enrichedInput/screenshots/android/codeblock_style_blocking.png and b/.maestro/enrichedInput/screenshots/android/codeblock_style_blocking.png differ diff --git a/.maestro/enrichedInput/screenshots/android/conflicting_paragraph_merge.png b/.maestro/enrichedInput/screenshots/android/conflicting_paragraph_merge.png index 074a56c79..361a1fe74 100644 Binary files a/.maestro/enrichedInput/screenshots/android/conflicting_paragraph_merge.png and b/.maestro/enrichedInput/screenshots/android/conflicting_paragraph_merge.png differ diff --git a/.maestro/enrichedInput/screenshots/android/empty_element_parsing.png b/.maestro/enrichedInput/screenshots/android/empty_element_parsing.png index 7e28ad4ea..3270f5705 100644 Binary files a/.maestro/enrichedInput/screenshots/android/empty_element_parsing.png and b/.maestro/enrichedInput/screenshots/android/empty_element_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/empty_html_block_parsing.png b/.maestro/enrichedInput/screenshots/android/empty_html_block_parsing.png index d0fa3c3d1..68dfb0506 100644 Binary files a/.maestro/enrichedInput/screenshots/android/empty_html_block_parsing.png and b/.maestro/enrichedInput/screenshots/android/empty_html_block_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/empty_lists_parsing.png b/.maestro/enrichedInput/screenshots/android/empty_lists_parsing.png index d777b0b24..85dc305d9 100644 Binary files a/.maestro/enrichedInput/screenshots/android/empty_lists_parsing.png and b/.maestro/enrichedInput/screenshots/android/empty_lists_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_copy.png b/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_copy.png index f717ac4fa..9510e7a09 100644 Binary files a/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_copy.png and b/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_copy.png differ diff --git a/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_cut.png b/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_cut.png index f717ac4fa..5ce68b092 100644 Binary files a/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_cut.png and b/.maestro/enrichedInput/screenshots/android/extending_paragraph_style_on_paste_after_cut.png differ diff --git a/.maestro/enrichedInput/screenshots/android/font_scaling.png b/.maestro/enrichedInput/screenshots/android/font_scaling.png index 6b955aa4e..6aa684769 100644 Binary files a/.maestro/enrichedInput/screenshots/android/font_scaling.png and b/.maestro/enrichedInput/screenshots/android/font_scaling.png differ diff --git a/.maestro/enrichedInput/screenshots/android/font_scaling_placeholder.png b/.maestro/enrichedInput/screenshots/android/font_scaling_placeholder.png index 1288cc4b3..024799772 100644 Binary files a/.maestro/enrichedInput/screenshots/android/font_scaling_placeholder.png and b/.maestro/enrichedInput/screenshots/android/font_scaling_placeholder.png differ diff --git a/.maestro/enrichedInput/screenshots/android/html_link_not_extended.png b/.maestro/enrichedInput/screenshots/android/html_link_not_extended.png index d0198a17d..0c10372dc 100644 Binary files a/.maestro/enrichedInput/screenshots/android/html_link_not_extended.png and b/.maestro/enrichedInput/screenshots/android/html_link_not_extended.png differ diff --git a/.maestro/enrichedInput/screenshots/android/image_inside_list_parsing.png b/.maestro/enrichedInput/screenshots/android/image_inside_list_parsing.png index 8c7af1ca3..e306f6421 100644 Binary files a/.maestro/enrichedInput/screenshots/android/image_inside_list_parsing.png and b/.maestro/enrichedInput/screenshots/android/image_inside_list_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/image_position_stability_after_typing.png b/.maestro/enrichedInput/screenshots/android/image_position_stability_after_typing.png index c0a316c11..f1ea54e6b 100644 Binary files a/.maestro/enrichedInput/screenshots/android/image_position_stability_after_typing.png and b/.maestro/enrichedInput/screenshots/android/image_position_stability_after_typing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/image_position_stability_before_typing.png b/.maestro/enrichedInput/screenshots/android/image_position_stability_before_typing.png index 063a9ad02..7c42eacba 100644 Binary files a/.maestro/enrichedInput/screenshots/android/image_position_stability_before_typing.png and b/.maestro/enrichedInput/screenshots/android/image_position_stability_before_typing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/initial_html_parsing.png b/.maestro/enrichedInput/screenshots/android/initial_html_parsing.png index 628395281..b6bee15f9 100644 Binary files a/.maestro/enrichedInput/screenshots/android/initial_html_parsing.png and b/.maestro/enrichedInput/screenshots/android/initial_html_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/android/initial_placeholder.png b/.maestro/enrichedInput/screenshots/android/initial_placeholder.png index 63fdb011d..cab2068d5 100644 Binary files a/.maestro/enrichedInput/screenshots/android/initial_placeholder.png and b/.maestro/enrichedInput/screenshots/android/initial_placeholder.png differ diff --git a/.maestro/enrichedInput/screenshots/android/inline_code_paste_into_codeblock.png b/.maestro/enrichedInput/screenshots/android/inline_code_paste_into_codeblock.png index 995be24f8..72f505e64 100644 Binary files a/.maestro/enrichedInput/screenshots/android/inline_code_paste_into_codeblock.png and b/.maestro/enrichedInput/screenshots/android/inline_code_paste_into_codeblock.png differ diff --git a/.maestro/enrichedInput/screenshots/android/inline_styles.png b/.maestro/enrichedInput/screenshots/android/inline_styles.png index 818443706..fe8d391ad 100644 Binary files a/.maestro/enrichedInput/screenshots/android/inline_styles.png and b/.maestro/enrichedInput/screenshots/android/inline_styles.png differ diff --git a/.maestro/enrichedInput/screenshots/android/inline_styles_merge.png b/.maestro/enrichedInput/screenshots/android/inline_styles_merge.png index e1b1cece0..3dcfe82fa 100644 Binary files a/.maestro/enrichedInput/screenshots/android/inline_styles_merge.png and b/.maestro/enrichedInput/screenshots/android/inline_styles_merge.png differ diff --git a/.maestro/enrichedInput/screenshots/android/inline_styles_removal.png b/.maestro/enrichedInput/screenshots/android/inline_styles_removal.png index 731ac2b2a..d3d5099d7 100644 Binary files a/.maestro/enrichedInput/screenshots/android/inline_styles_removal.png and b/.maestro/enrichedInput/screenshots/android/inline_styles_removal.png differ diff --git a/.maestro/enrichedInput/screenshots/android/inline_styles_survive_block_toggle.png b/.maestro/enrichedInput/screenshots/android/inline_styles_survive_block_toggle.png index e98448191..3db0dfe40 100644 Binary files a/.maestro/enrichedInput/screenshots/android/inline_styles_survive_block_toggle.png and b/.maestro/enrichedInput/screenshots/android/inline_styles_survive_block_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/android/line_overlapping.png b/.maestro/enrichedInput/screenshots/android/line_overlapping.png index 760674223..fce1bcad2 100644 Binary files a/.maestro/enrichedInput/screenshots/android/line_overlapping.png and b/.maestro/enrichedInput/screenshots/android/line_overlapping.png differ diff --git a/.maestro/enrichedInput/screenshots/android/link_not_extended.png b/.maestro/enrichedInput/screenshots/android/link_not_extended.png index 8fba4d554..ecc2a5e7b 100644 Binary files a/.maestro/enrichedInput/screenshots/android/link_not_extended.png and b/.maestro/enrichedInput/screenshots/android/link_not_extended.png differ diff --git a/.maestro/enrichedInput/screenshots/android/links_visual_auto.png b/.maestro/enrichedInput/screenshots/android/links_visual_auto.png index 369f3a2ea..1f88ddd5a 100644 Binary files a/.maestro/enrichedInput/screenshots/android/links_visual_auto.png and b/.maestro/enrichedInput/screenshots/android/links_visual_auto.png differ diff --git a/.maestro/enrichedInput/screenshots/android/links_visual_manual.png b/.maestro/enrichedInput/screenshots/android/links_visual_manual.png index cc265a9db..1cad4609c 100644 Binary files a/.maestro/enrichedInput/screenshots/android/links_visual_manual.png and b/.maestro/enrichedInput/screenshots/android/links_visual_manual.png differ diff --git a/.maestro/enrichedInput/screenshots/android/list_newline_insertion.png b/.maestro/enrichedInput/screenshots/android/list_newline_insertion.png index 12b3b0384..a754db992 100644 Binary files a/.maestro/enrichedInput/screenshots/android/list_newline_insertion.png and b/.maestro/enrichedInput/screenshots/android/list_newline_insertion.png differ diff --git a/.maestro/enrichedInput/screenshots/android/mention_parsing_single_quoted_attributes.png b/.maestro/enrichedInput/screenshots/android/mention_parsing_single_quoted_attributes.png index a8d68a2cd..e3656cca6 100644 Binary files a/.maestro/enrichedInput/screenshots/android/mention_parsing_single_quoted_attributes.png and b/.maestro/enrichedInput/screenshots/android/mention_parsing_single_quoted_attributes.png differ diff --git a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_1.png b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_1.png index 74947bcfd..f4d837b4c 100644 Binary files a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_1.png and b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_1.png differ diff --git a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_2.png b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_2.png index 7a053e6c5..a6b9614df 100644 Binary files a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_2.png and b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_2.png differ diff --git a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_3.png b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_3.png index d80b9a756..8bbdf0550 100644 Binary files a/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_3.png and b/.maestro/enrichedInput/screenshots/android/mention_popup_closing_on_cursor_travel_3.png differ diff --git a/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_deleting_second_line.png b/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_deleting_second_line.png index 5d00fb1ce..bc9ffec9f 100644 Binary files a/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_deleting_second_line.png and b/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_deleting_second_line.png differ diff --git a/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_emptying_second_line.png b/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_emptying_second_line.png index 53049a519..0a06c63b2 100644 Binary files a/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_emptying_second_line.png and b/.maestro/enrichedInput/screenshots/android/ordered_list_renumbering_after_emptying_second_line.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_style_after_removal.png b/.maestro/enrichedInput/screenshots/android/paragraph_style_after_removal.png index 5f5e0c7af..893e8cf21 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_style_after_removal.png and b/.maestro/enrichedInput/screenshots/android/paragraph_style_after_removal.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_style_toggle.png b/.maestro/enrichedInput/screenshots/android/paragraph_style_toggle.png index 756cfe7e5..d84824aaf 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_style_toggle.png and b/.maestro/enrichedInput/screenshots/android/paragraph_style_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_styles_alignment.png b/.maestro/enrichedInput/screenshots/android/paragraph_styles_alignment.png index 31828ca25..82fdce39b 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_styles_alignment.png and b/.maestro/enrichedInput/screenshots/android/paragraph_styles_alignment.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_styles_blocks.png b/.maestro/enrichedInput/screenshots/android/paragraph_styles_blocks.png index 4d075df95..43bb4ea50 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_styles_blocks.png and b/.maestro/enrichedInput/screenshots/android/paragraph_styles_blocks.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_styles_headings.png b/.maestro/enrichedInput/screenshots/android/paragraph_styles_headings.png index d94481f0a..2bf727d9c 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_styles_headings.png and b/.maestro/enrichedInput/screenshots/android/paragraph_styles_headings.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_styles_lists.png b/.maestro/enrichedInput/screenshots/android/paragraph_styles_lists.png index 7bb6e38db..42924d435 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_styles_lists.png and b/.maestro/enrichedInput/screenshots/android/paragraph_styles_lists.png differ diff --git a/.maestro/enrichedInput/screenshots/android/paragraph_styles_no_crash.png b/.maestro/enrichedInput/screenshots/android/paragraph_styles_no_crash.png index 3278d7428..983c5fab5 100644 Binary files a/.maestro/enrichedInput/screenshots/android/paragraph_styles_no_crash.png and b/.maestro/enrichedInput/screenshots/android/paragraph_styles_no_crash.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_bottom.png b/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_bottom.png index adf2bd9cc..e5113551c 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_bottom.png and b/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_top.png b/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_top.png index 0fb8b9b36..cf3e15d14 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_top.png and b/.maestro/enrichedInput/screenshots/android/scroll_after_typing_long_content_top.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_bottom.png b/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_bottom.png index 9c2dd9795..71b4235e1 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_bottom.png and b/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_top.png b/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_top.png index 3b946339f..6ebd80791 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_top.png and b/.maestro/enrichedInput/screenshots/android/scrolling_paragraph_styles_top.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scrolling_set_value_bottom.png b/.maestro/enrichedInput/screenshots/android/scrolling_set_value_bottom.png index adf2bd9cc..6dc88b27d 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scrolling_set_value_bottom.png and b/.maestro/enrichedInput/screenshots/android/scrolling_set_value_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/android/scrolling_set_value_top.png b/.maestro/enrichedInput/screenshots/android/scrolling_set_value_top.png index 0fb8b9b36..7d33f2aad 100644 Binary files a/.maestro/enrichedInput/screenshots/android/scrolling_set_value_top.png and b/.maestro/enrichedInput/screenshots/android/scrolling_set_value_top.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/checkbox_toggle.png b/.maestro/enrichedInput/screenshots/ios/checkbox_toggle.png index 64e25fbe9..9e93238f8 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/checkbox_toggle.png and b/.maestro/enrichedInput/screenshots/ios/checkbox_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/codeblock_br_preservation.png b/.maestro/enrichedInput/screenshots/ios/codeblock_br_preservation.png index 28727a10e..5c7adec73 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/codeblock_br_preservation.png and b/.maestro/enrichedInput/screenshots/ios/codeblock_br_preservation.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/codeblock_no_link_detection.png b/.maestro/enrichedInput/screenshots/ios/codeblock_no_link_detection.png index f78d43e34..d6f84b23c 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/codeblock_no_link_detection.png and b/.maestro/enrichedInput/screenshots/ios/codeblock_no_link_detection.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/codeblock_style_blocking.png b/.maestro/enrichedInput/screenshots/ios/codeblock_style_blocking.png index 0b0fd68ef..782462fb2 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/codeblock_style_blocking.png and b/.maestro/enrichedInput/screenshots/ios/codeblock_style_blocking.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/conflicting_paragraph_merge.png b/.maestro/enrichedInput/screenshots/ios/conflicting_paragraph_merge.png index b9decd9f7..d011cd7b5 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/conflicting_paragraph_merge.png and b/.maestro/enrichedInput/screenshots/ios/conflicting_paragraph_merge.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/empty_element_parsing.png b/.maestro/enrichedInput/screenshots/ios/empty_element_parsing.png index ea9dd3310..86433dc2b 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/empty_element_parsing.png and b/.maestro/enrichedInput/screenshots/ios/empty_element_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/empty_html_block_parsing.png b/.maestro/enrichedInput/screenshots/ios/empty_html_block_parsing.png index 9dd93697f..3cbcf5785 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/empty_html_block_parsing.png and b/.maestro/enrichedInput/screenshots/ios/empty_html_block_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/empty_lists_parsing.png b/.maestro/enrichedInput/screenshots/ios/empty_lists_parsing.png index 015e7d397..efcee0bee 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/empty_lists_parsing.png and b/.maestro/enrichedInput/screenshots/ios/empty_lists_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/font_scaling.png b/.maestro/enrichedInput/screenshots/ios/font_scaling.png index ccc86279c..ed139b3f5 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/font_scaling.png and b/.maestro/enrichedInput/screenshots/ios/font_scaling.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/font_scaling_placeholder.png b/.maestro/enrichedInput/screenshots/ios/font_scaling_placeholder.png index 99c329c32..4b890dbc0 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/font_scaling_placeholder.png and b/.maestro/enrichedInput/screenshots/ios/font_scaling_placeholder.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/html_link_not_extended.png b/.maestro/enrichedInput/screenshots/ios/html_link_not_extended.png index 42920d325..b1952b89a 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/html_link_not_extended.png and b/.maestro/enrichedInput/screenshots/ios/html_link_not_extended.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/image_inside_list_parsing.png b/.maestro/enrichedInput/screenshots/ios/image_inside_list_parsing.png index 599bd6522..2eb105b59 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/image_inside_list_parsing.png and b/.maestro/enrichedInput/screenshots/ios/image_inside_list_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/initial_html_parsing.png b/.maestro/enrichedInput/screenshots/ios/initial_html_parsing.png index 8bbe3f484..fc3efe516 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/initial_html_parsing.png and b/.maestro/enrichedInput/screenshots/ios/initial_html_parsing.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/initial_placeholder.png b/.maestro/enrichedInput/screenshots/ios/initial_placeholder.png index 7a6729d42..d133a8656 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/initial_placeholder.png and b/.maestro/enrichedInput/screenshots/ios/initial_placeholder.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/inline_code_paste_into_codeblock.png b/.maestro/enrichedInput/screenshots/ios/inline_code_paste_into_codeblock.png index d739d1720..137c32ee0 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/inline_code_paste_into_codeblock.png and b/.maestro/enrichedInput/screenshots/ios/inline_code_paste_into_codeblock.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/inline_styles.png b/.maestro/enrichedInput/screenshots/ios/inline_styles.png index 9a9acc094..7494bae8d 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/inline_styles.png and b/.maestro/enrichedInput/screenshots/ios/inline_styles.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/inline_styles_removal.png b/.maestro/enrichedInput/screenshots/ios/inline_styles_removal.png index a7b19f9c8..de3c3a1b5 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/inline_styles_removal.png and b/.maestro/enrichedInput/screenshots/ios/inline_styles_removal.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/inline_styles_survive_block_toggle.png b/.maestro/enrichedInput/screenshots/ios/inline_styles_survive_block_toggle.png index 0058f528b..34e14d48d 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/inline_styles_survive_block_toggle.png and b/.maestro/enrichedInput/screenshots/ios/inline_styles_survive_block_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/line_overlapping.png b/.maestro/enrichedInput/screenshots/ios/line_overlapping.png index fa0eac630..05cd63217 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/line_overlapping.png and b/.maestro/enrichedInput/screenshots/ios/line_overlapping.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/link_not_extended.png b/.maestro/enrichedInput/screenshots/ios/link_not_extended.png index cc91179c8..00660f2db 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/link_not_extended.png and b/.maestro/enrichedInput/screenshots/ios/link_not_extended.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/links_visual_auto.png b/.maestro/enrichedInput/screenshots/ios/links_visual_auto.png index 2efbdbf07..ae885fe67 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/links_visual_auto.png and b/.maestro/enrichedInput/screenshots/ios/links_visual_auto.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/links_visual_manual.png b/.maestro/enrichedInput/screenshots/ios/links_visual_manual.png index bb0bd58f7..bbab12b9d 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/links_visual_manual.png and b/.maestro/enrichedInput/screenshots/ios/links_visual_manual.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/list_newline_insertion.png b/.maestro/enrichedInput/screenshots/ios/list_newline_insertion.png index ea1bdc616..23dde0f10 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/list_newline_insertion.png and b/.maestro/enrichedInput/screenshots/ios/list_newline_insertion.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/mention_parsing_single_quoted_attributes.png b/.maestro/enrichedInput/screenshots/ios/mention_parsing_single_quoted_attributes.png index 8933d2de9..433116806 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/mention_parsing_single_quoted_attributes.png and b/.maestro/enrichedInput/screenshots/ios/mention_parsing_single_quoted_attributes.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_1.png b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_1.png index 7f0cfabe9..59976788b 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_1.png and b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_1.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_2.png b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_2.png index a32731ece..56543b8a5 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_2.png and b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_2.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_3.png b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_3.png index b0c1a44ca..0f7eb9c11 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_3.png and b/.maestro/enrichedInput/screenshots/ios/mention_popup_closing_on_cursor_travel_3.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_deleting_second_line.png b/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_deleting_second_line.png index d72a13061..67c0e9664 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_deleting_second_line.png and b/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_deleting_second_line.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_emptying_second_line.png b/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_emptying_second_line.png index 431d95210..c4564e363 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_emptying_second_line.png and b/.maestro/enrichedInput/screenshots/ios/ordered_list_renumbering_after_emptying_second_line.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_style_after_removal.png b/.maestro/enrichedInput/screenshots/ios/paragraph_style_after_removal.png index 8bf9c8233..6f7a1ba7c 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_style_after_removal.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_style_after_removal.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_style_toggle.png b/.maestro/enrichedInput/screenshots/ios/paragraph_style_toggle.png index 7c2dbefc8..bb568d634 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_style_toggle.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_style_toggle.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_alignment.png b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_alignment.png index 28f837a59..9e52c64b5 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_alignment.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_alignment.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_blocks.png b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_blocks.png index 4b7ff996e..41377403d 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_blocks.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_blocks.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_headings.png b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_headings.png index 4aeb94c42..8f4bfe57f 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_headings.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_headings.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_lists.png b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_lists.png index 2bee088d8..8acceb4a0 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_lists.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_lists.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_no_crash.png b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_no_crash.png index c54bd5738..6a15e587f 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/paragraph_styles_no_crash.png and b/.maestro/enrichedInput/screenshots/ios/paragraph_styles_no_crash.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_bottom.png b/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_bottom.png index 09b5ec7eb..5d1413b6a 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_bottom.png and b/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_top.png b/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_top.png index 1ef3751a7..9a1078a99 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_top.png and b/.maestro/enrichedInput/screenshots/ios/scroll_after_typing_long_content_top.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_bottom.png b/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_bottom.png index 96087f395..86d569b7e 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_bottom.png and b/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_top.png b/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_top.png index 241461ace..172551dd8 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_top.png and b/.maestro/enrichedInput/screenshots/ios/scrolling_paragraph_styles_top.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_bottom.png b/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_bottom.png index 09b5ec7eb..5d1413b6a 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_bottom.png and b/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_bottom.png differ diff --git a/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_top.png b/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_top.png index 1ef3751a7..ce1bc9584 100644 Binary files a/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_top.png and b/.maestro/enrichedInput/screenshots/ios/scrolling_set_value_top.png differ diff --git a/.maestro/enrichedInput/subflows/capture_or_assert_fullscreen_screenshot.yaml b/.maestro/enrichedInput/subflows/capture_or_assert_fullscreen_screenshot.yaml index f51d04b5a..7463fb72a 100644 --- a/.maestro/enrichedInput/subflows/capture_or_assert_fullscreen_screenshot.yaml +++ b/.maestro/enrichedInput/subflows/capture_or_assert_fullscreen_screenshot.yaml @@ -3,6 +3,8 @@ appId: swmansion.enriched.example - tapOn: id: 'blur-button' +- waitForAnimationToEnd + - runFlow: file: '../../subflows/capture_or_assert_screenshot.yaml' env: diff --git a/.maestro/enrichedInput/subflows/insert_image.yaml b/.maestro/enrichedInput/subflows/insert_image.yaml index d8804279e..31af50dbb 100644 --- a/.maestro/enrichedInput/subflows/insert_image.yaml +++ b/.maestro/enrichedInput/subflows/insert_image.yaml @@ -1,20 +1,14 @@ -appId: swmansion.enriched.example ---- - -- tapOn: - id: "toolbar-image" - - waitForAnimationToEnd - extendedWaitUntil: visible: - id: "image-modal-submit-button" + id: 'image-modal-submit-button' timeout: 10000 - addMedia: - - "../../assets/sample_image.jpg" + - '../../assets/sample_image.jpg' - tapOn: - id: "image-modal-submit-button" + id: 'image-modal-submit-button' - runFlow: - file: "pick_first_image.yaml" + file: 'pick_first_image.yaml' diff --git a/.maestro/enrichedInput/subflows/insert_link.yaml b/.maestro/enrichedInput/subflows/insert_link.yaml index 744d98514..feeffff51 100644 --- a/.maestro/enrichedInput/subflows/insert_link.yaml +++ b/.maestro/enrichedInput/subflows/insert_link.yaml @@ -13,12 +13,18 @@ appId: swmansion.enriched.example - tapOn: id: "link-modal-text-input" -- inputText: ${LINK_TEXT} +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: ${LINK_TEXT} - tapOn: id: "link-modal-url-input" -- inputText: ${LINK_URL} +- runFlow: + file: '../../subflows/input_text.yaml' + env: + TEXT: ${LINK_URL} - tapOn: id: "link-modal-submit-button" diff --git a/.maestro/enrichedInput/subflows/set_editor_value.yaml b/.maestro/enrichedInput/subflows/set_editor_value.yaml index 67b459db1..e87c5d33e 100644 --- a/.maestro/enrichedInput/subflows/set_editor_value.yaml +++ b/.maestro/enrichedInput/subflows/set_editor_value.yaml @@ -1,19 +1,26 @@ appId: swmansion.enriched.example --- - - tapOn: - id: "set-value-button" + id: 'set-value-button' - waitForAnimationToEnd - extendedWaitUntil: visible: - id: "value-modal-input" + id: 'value-modal-input' timeout: 10000 - tapOn: - id: "value-modal-input" + id: 'value-modal-input' - inputText: ${VALUE} - tapOn: - id: "value-modal-submit-button" + id: 'value-modal-submit-button' + +# Wait until the modal is gone +- extendedWaitUntil: + notVisible: + id: 'value-modal-submit-button' + timeout: 10000 + +- waitForAnimationToEnd diff --git a/.maestro/enrichedText/flows/alignment_visual.yaml b/.maestro/enrichedText/flows/alignment_visual.yaml index cef9fa546..2a3384dfc 100644 --- a/.maestro/enrichedText/flows/alignment_visual.yaml +++ b/.maestro/enrichedText/flows/alignment_visual.yaml @@ -12,17 +12,7 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -

Left aligned

-

Centre aligned

-
Heading 6
-

Right aligned

-
    -
  1. Element 1
  2. -
  3. Element 2
  4. -
- + VALUE: '

Left aligned

Centre aligned

Heading 6

Right aligned

  1. Element 1
  2. Element 2
' - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/flows/custom_styles_display.yaml b/.maestro/enrichedText/flows/custom_styles_display.yaml index 84c65a802..811098e96 100644 --- a/.maestro/enrichedText/flows/custom_styles_display.yaml +++ b/.maestro/enrichedText/flows/custom_styles_display.yaml @@ -12,12 +12,13 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -

Link

-

@John Doe

-

- + VALUE: '

Link

@John Doe

' + +# Force a delay to ensure the screenshot is loaded +- extendedWaitUntil: + visible: 'fake_element_to_force_delay' + optional: true + timeout: 5000 - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/flows/ellipsize_mode.yaml b/.maestro/enrichedText/flows/ellipsize_mode.yaml index 02c95a76e..5292f2367 100644 --- a/.maestro/enrichedText/flows/ellipsize_mode.yaml +++ b/.maestro/enrichedText/flows/ellipsize_mode.yaml @@ -12,8 +12,7 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > -

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+ VALUE: '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

' # numberOfLines: all - runFlow: diff --git a/.maestro/enrichedText/flows/empty_list_elements_display.yaml b/.maestro/enrichedText/flows/empty_list_elements_display.yaml index d0a23a8bd..319d8833c 100644 --- a/.maestro/enrichedText/flows/empty_list_elements_display.yaml +++ b/.maestro/enrichedText/flows/empty_list_elements_display.yaml @@ -12,24 +12,7 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -
    -
  1. First
  2. -
  3. -
  4. Third
  5. -
- - - + VALUE:
  1. First
  2. Third
- runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/flows/font_scaling.yaml b/.maestro/enrichedText/flows/font_scaling.yaml index a871d08be..2f5dc347a 100644 --- a/.maestro/enrichedText/flows/font_scaling.yaml +++ b/.maestro/enrichedText/flows/font_scaling.yaml @@ -14,18 +14,13 @@ tags: - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -

Example

-

Text

-
Heading 6
-
    -
  1. Element 1
  2. -
  3. Element 2
  4. -
- + VALUE:

Example

Text

Heading 6
  1. Element 1
  2. Element 2
-- scroll +- swipe: + direction: UP + waitToSettleTimeoutMs: 1000 + +- waitForAnimationToEnd - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/flows/inline_styles_display.yaml b/.maestro/enrichedText/flows/inline_styles_display.yaml index d9046d9e8..f4e48f0dc 100644 --- a/.maestro/enrichedText/flows/inline_styles_display.yaml +++ b/.maestro/enrichedText/flows/inline_styles_display.yaml @@ -12,12 +12,7 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -

Plain text

-

Bold Italic Underline Strike Code

-

Combined

- + VALUE: '

Plain text

Bold Italic Underline Strike Code

Combined

' - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/flows/link_press.yaml b/.maestro/enrichedText/flows/link_press.yaml index 406eadd64..c53a0577e 100644 --- a/.maestro/enrichedText/flows/link_press.yaml +++ b/.maestro/enrichedText/flows/link_press.yaml @@ -18,6 +18,7 @@ appId: swmansion.enriched.example id: 'enriched-text' point: '5%,50%' +- waitForAnimationToEnd - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' env: diff --git a/.maestro/enrichedText/flows/mention_press.yaml b/.maestro/enrichedText/flows/mention_press.yaml index 0092dbfb1..68c59823a 100644 --- a/.maestro/enrichedText/flows/mention_press.yaml +++ b/.maestro/enrichedText/flows/mention_press.yaml @@ -18,6 +18,7 @@ appId: swmansion.enriched.example id: 'enriched-text' point: '5%,50%' +- waitForAnimationToEnd - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' env: diff --git a/.maestro/enrichedText/flows/paragraph_styles_display.yaml b/.maestro/enrichedText/flows/paragraph_styles_display.yaml index 3187d55be..e5e8907b7 100644 --- a/.maestro/enrichedText/flows/paragraph_styles_display.yaml +++ b/.maestro/enrichedText/flows/paragraph_styles_display.yaml @@ -12,32 +12,13 @@ appId: swmansion.enriched.example - runFlow: file: '../subflows/set_enriched_text_value.yaml' env: - VALUE: > - -

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
- -

Code block

-
-
-

Blockquote

-
- -
    -
  1. Ordered list
  2. -
- - + VALUE: '

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Code block

Blockquote

  1. Ordered list
' -- scroll +- swipe: + direction: UP + waitToSettleTimeoutMs: 1000 + +- waitForAnimationToEnd - runFlow: file: '../subflows/capture_or_assert_screenshot.yaml' diff --git a/.maestro/enrichedText/screenshots/android/alignment_visual.png b/.maestro/enrichedText/screenshots/android/alignment_visual.png index c3e03756a..db59c8cd1 100644 Binary files a/.maestro/enrichedText/screenshots/android/alignment_visual.png and b/.maestro/enrichedText/screenshots/android/alignment_visual.png differ diff --git a/.maestro/enrichedText/screenshots/android/custom_styles_display.png b/.maestro/enrichedText/screenshots/android/custom_styles_display.png index 97f2e6a81..90e15fcc4 100644 Binary files a/.maestro/enrichedText/screenshots/android/custom_styles_display.png and b/.maestro/enrichedText/screenshots/android/custom_styles_display.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_head_1.png b/.maestro/enrichedText/screenshots/android/ellipsize_head_1.png index 5ad750173..245198008 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_head_1.png and b/.maestro/enrichedText/screenshots/android/ellipsize_head_1.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_head_all.png b/.maestro/enrichedText/screenshots/android/ellipsize_head_all.png index e9a429392..a74f1947c 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_head_all.png and b/.maestro/enrichedText/screenshots/android/ellipsize_head_all.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_middle_1.png b/.maestro/enrichedText/screenshots/android/ellipsize_middle_1.png index 7dd3f5723..7faa1e818 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_middle_1.png and b/.maestro/enrichedText/screenshots/android/ellipsize_middle_1.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_middle_all.png b/.maestro/enrichedText/screenshots/android/ellipsize_middle_all.png index e9a429392..a74f1947c 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_middle_all.png and b/.maestro/enrichedText/screenshots/android/ellipsize_middle_all.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_tail_1.png b/.maestro/enrichedText/screenshots/android/ellipsize_tail_1.png index 9fe8f4426..3023ae18a 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_tail_1.png and b/.maestro/enrichedText/screenshots/android/ellipsize_tail_1.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_tail_2.png b/.maestro/enrichedText/screenshots/android/ellipsize_tail_2.png index 3f2618a67..6b340de88 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_tail_2.png and b/.maestro/enrichedText/screenshots/android/ellipsize_tail_2.png differ diff --git a/.maestro/enrichedText/screenshots/android/ellipsize_tail_all.png b/.maestro/enrichedText/screenshots/android/ellipsize_tail_all.png index e9a429392..a74f1947c 100644 Binary files a/.maestro/enrichedText/screenshots/android/ellipsize_tail_all.png and b/.maestro/enrichedText/screenshots/android/ellipsize_tail_all.png differ diff --git a/.maestro/enrichedText/screenshots/android/empty_list_elements_display.png b/.maestro/enrichedText/screenshots/android/empty_list_elements_display.png index 62859c08e..e7beab0e4 100644 Binary files a/.maestro/enrichedText/screenshots/android/empty_list_elements_display.png and b/.maestro/enrichedText/screenshots/android/empty_list_elements_display.png differ diff --git a/.maestro/enrichedText/screenshots/android/external_html_parsing.png b/.maestro/enrichedText/screenshots/android/external_html_parsing.png index 09e5bf7ce..7c6a550e0 100644 Binary files a/.maestro/enrichedText/screenshots/android/external_html_parsing.png and b/.maestro/enrichedText/screenshots/android/external_html_parsing.png differ diff --git a/.maestro/enrichedText/screenshots/android/font_scaling.png b/.maestro/enrichedText/screenshots/android/font_scaling.png index 488791012..82c3ca95c 100644 Binary files a/.maestro/enrichedText/screenshots/android/font_scaling.png and b/.maestro/enrichedText/screenshots/android/font_scaling.png differ diff --git a/.maestro/enrichedText/screenshots/android/inline_styles_display.png b/.maestro/enrichedText/screenshots/android/inline_styles_display.png index fe658211f..972709d66 100644 Binary files a/.maestro/enrichedText/screenshots/android/inline_styles_display.png and b/.maestro/enrichedText/screenshots/android/inline_styles_display.png differ diff --git a/.maestro/enrichedText/screenshots/android/link_press.png b/.maestro/enrichedText/screenshots/android/link_press.png index 0a6f60821..48877080b 100644 Binary files a/.maestro/enrichedText/screenshots/android/link_press.png and b/.maestro/enrichedText/screenshots/android/link_press.png differ diff --git a/.maestro/enrichedText/screenshots/android/mention_press.png b/.maestro/enrichedText/screenshots/android/mention_press.png index d480c2e1e..f83ea9b2f 100644 Binary files a/.maestro/enrichedText/screenshots/android/mention_press.png and b/.maestro/enrichedText/screenshots/android/mention_press.png differ diff --git a/.maestro/enrichedText/screenshots/android/paragraph_styles_display.png b/.maestro/enrichedText/screenshots/android/paragraph_styles_display.png index 112148d77..1f0c69468 100644 Binary files a/.maestro/enrichedText/screenshots/android/paragraph_styles_display.png and b/.maestro/enrichedText/screenshots/android/paragraph_styles_display.png differ diff --git a/.maestro/enrichedText/screenshots/ios/alignment_visual.png b/.maestro/enrichedText/screenshots/ios/alignment_visual.png index cffcfac4b..6e085a743 100644 Binary files a/.maestro/enrichedText/screenshots/ios/alignment_visual.png and b/.maestro/enrichedText/screenshots/ios/alignment_visual.png differ diff --git a/.maestro/enrichedText/screenshots/ios/custom_styles_display.png b/.maestro/enrichedText/screenshots/ios/custom_styles_display.png index 2ac807c3e..4ed800f00 100644 Binary files a/.maestro/enrichedText/screenshots/ios/custom_styles_display.png and b/.maestro/enrichedText/screenshots/ios/custom_styles_display.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_head_1.png b/.maestro/enrichedText/screenshots/ios/ellipsize_head_1.png index 71889c7c7..7fd71cbf4 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_head_1.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_head_1.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_head_2.png b/.maestro/enrichedText/screenshots/ios/ellipsize_head_2.png index bbf5a646e..0c56793a2 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_head_2.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_head_2.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_head_all.png b/.maestro/enrichedText/screenshots/ios/ellipsize_head_all.png index db3859730..1b61138a0 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_head_all.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_head_all.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_1.png b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_1.png index 0414fcd60..eba801ffb 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_1.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_1.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_2.png b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_2.png index d6d6b878b..420d34ba6 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_2.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_2.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_all.png b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_all.png index db3859730..1b61138a0 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_middle_all.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_middle_all.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_1.png b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_1.png index 34451e3e2..1783d09ae 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_1.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_1.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_2.png b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_2.png index 038030e52..9dc6af975 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_2.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_2.png differ diff --git a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_all.png b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_all.png index db3859730..1b61138a0 100644 Binary files a/.maestro/enrichedText/screenshots/ios/ellipsize_tail_all.png and b/.maestro/enrichedText/screenshots/ios/ellipsize_tail_all.png differ diff --git a/.maestro/enrichedText/screenshots/ios/empty_list_elements_display.png b/.maestro/enrichedText/screenshots/ios/empty_list_elements_display.png index 03dcbd827..86aa4ce1e 100644 Binary files a/.maestro/enrichedText/screenshots/ios/empty_list_elements_display.png and b/.maestro/enrichedText/screenshots/ios/empty_list_elements_display.png differ diff --git a/.maestro/enrichedText/screenshots/ios/external_html_parsing.png b/.maestro/enrichedText/screenshots/ios/external_html_parsing.png index 5dc1f9aa4..90caca662 100644 Binary files a/.maestro/enrichedText/screenshots/ios/external_html_parsing.png and b/.maestro/enrichedText/screenshots/ios/external_html_parsing.png differ diff --git a/.maestro/enrichedText/screenshots/ios/font_scaling.png b/.maestro/enrichedText/screenshots/ios/font_scaling.png index 95d5c5808..3d780dcb9 100644 Binary files a/.maestro/enrichedText/screenshots/ios/font_scaling.png and b/.maestro/enrichedText/screenshots/ios/font_scaling.png differ diff --git a/.maestro/enrichedText/screenshots/ios/inline_styles_display.png b/.maestro/enrichedText/screenshots/ios/inline_styles_display.png index 974d833f7..3c7f09f62 100644 Binary files a/.maestro/enrichedText/screenshots/ios/inline_styles_display.png and b/.maestro/enrichedText/screenshots/ios/inline_styles_display.png differ diff --git a/.maestro/enrichedText/screenshots/ios/link_press.png b/.maestro/enrichedText/screenshots/ios/link_press.png index 4a664d37f..40ea794ca 100644 Binary files a/.maestro/enrichedText/screenshots/ios/link_press.png and b/.maestro/enrichedText/screenshots/ios/link_press.png differ diff --git a/.maestro/enrichedText/screenshots/ios/mention_press.png b/.maestro/enrichedText/screenshots/ios/mention_press.png index 0ec98e5fa..b1032ff97 100644 Binary files a/.maestro/enrichedText/screenshots/ios/mention_press.png and b/.maestro/enrichedText/screenshots/ios/mention_press.png differ diff --git a/.maestro/enrichedText/screenshots/ios/paragraph_styles_display.png b/.maestro/enrichedText/screenshots/ios/paragraph_styles_display.png index 8abd1b2af..3f7e0eb9d 100644 Binary files a/.maestro/enrichedText/screenshots/ios/paragraph_styles_display.png and b/.maestro/enrichedText/screenshots/ios/paragraph_styles_display.png differ diff --git a/.maestro/enrichedText/subflows/run_ellipsize_case.yaml b/.maestro/enrichedText/subflows/run_ellipsize_case.yaml index 4984c5b4b..9e5b93b97 100644 --- a/.maestro/enrichedText/subflows/run_ellipsize_case.yaml +++ b/.maestro/enrichedText/subflows/run_ellipsize_case.yaml @@ -1,16 +1,17 @@ appId: swmansion.enriched.example --- - tapOn: - id: "number-of-lines-${NOL_BUTTON}-button" + id: 'number-of-lines-${NOL_BUTTON}-button' -- assertVisible: "numberOfLines: ${NOL_LABEL}" +- assertVisible: 'numberOfLines: ${NOL_LABEL}' - tapOn: - id: "ellipsize-${ELLIPSIZE_MODE}-button" + id: 'ellipsize-${ELLIPSIZE_MODE}-button' -- assertVisible: "ellipsizeMode: ${ELLIPSIZE_MODE}" +- assertVisible: 'ellipsizeMode: ${ELLIPSIZE_MODE}' +- waitForAnimationToEnd - runFlow: - file: "./capture_or_assert_screenshot.yaml" + file: './capture_or_assert_screenshot.yaml' env: - SCREENSHOT_NAME: "${SCREENSHOT_NAME}" + SCREENSHOT_NAME: '${SCREENSHOT_NAME}' diff --git a/.maestro/enrichedText/subflows/set_enriched_text_value.yaml b/.maestro/enrichedText/subflows/set_enriched_text_value.yaml index b03f48bcd..a199c3fed 100644 --- a/.maestro/enrichedText/subflows/set_enriched_text_value.yaml +++ b/.maestro/enrichedText/subflows/set_enriched_text_value.yaml @@ -1,19 +1,26 @@ appId: swmansion.enriched.example --- - - tapOn: - id: "set-enriched-text-button" + id: 'set-enriched-text-button' - waitForAnimationToEnd - extendedWaitUntil: visible: - id: "value-modal-input" + id: 'value-modal-input' timeout: 10000 - tapOn: - id: "value-modal-input" + id: 'value-modal-input' - inputText: ${VALUE} - tapOn: - id: "value-modal-submit-button" + id: 'value-modal-submit-button' + +# Wait until the modal is gone +- extendedWaitUntil: + notVisible: + id: 'value-modal-submit-button' + timeout: 10000 + +- waitForAnimationToEnd diff --git a/.maestro/scripts/run-tests.sh b/.maestro/scripts/run-tests.sh index afaf96887..404951e84 100755 --- a/.maestro/scripts/run-tests.sh +++ b/.maestro/scripts/run-tests.sh @@ -16,20 +16,24 @@ # ./run-tests.sh --platform ios # ./run-tests.sh --platform android --update-screenshots .maestro/enrichedInput/flows/core_controls_smoke.yaml # ./run-tests.sh --platform ios --rebuild +# +# Uses the local maestro-runner binary: +# Android → --driver devicelab +# iOS → default driver set -euo pipefail -MIN_MAESTRO_VERSION="2.3.0" +DEFAULT_MAESTRO_RUNNER="$HOME/.maestro-runner/bin/maestro-runner" -if ! command -v maestro >/dev/null 2>&1; then - echo "Error: maestro CLI not found." >&2 - exit 1 -fi - -MAESTRO_VERSION=$(maestro --version) -# Compare versions by sorting them; if the minimum sorts after the actual, it's too old. -if [ "$(printf '%s\n' "$MIN_MAESTRO_VERSION" "$MAESTRO_VERSION" | sort -V | head -n1)" != "$MIN_MAESTRO_VERSION" ]; then - echo "Error: maestro $MAESTRO_VERSION is too old, minimum required is $MIN_MAESTRO_VERSION" >&2 +if [ -n "${MAESTRO_RUNNER:-}" ]; then + MAESTRO_BIN="$MAESTRO_RUNNER" +elif [ -x "$DEFAULT_MAESTRO_RUNNER" ]; then + MAESTRO_BIN="$DEFAULT_MAESTRO_RUNNER" +elif command -v maestro-runner >/dev/null 2>&1; then + MAESTRO_BIN="$(command -v maestro-runner)" +else + echo "Error: maestro-runner not found." >&2 + echo "Install it locally (expected at $DEFAULT_MAESTRO_RUNNER) or set MAESTRO_RUNNER." >&2 exit 1 fi @@ -63,6 +67,20 @@ esac DEVICE_ID=$("$SETUP" | tee /dev/tty | grep "^DEVICE_ID=" | cut -d= -f2) +# Android uses DeviceLab; iOS keeps the runner default driver. +DRIVER_ARGS="" +if [ "$PLATFORM" = android ]; then + DRIVER_ARGS="--driver devicelab" +fi + +echo "=== Using maestro-runner: $MAESTRO_BIN ===" +"$MAESTRO_BIN" --version || true +if [ -n "$DRIVER_ARGS" ]; then + echo "=== Driver: devicelab (android) ===" +else + echo "=== Driver: default (ios) ===" +fi + app_installed() { if [ "$PLATFORM" = ios ]; then xcrun simctl listapps "$DEVICE_ID" 2>/dev/null | grep -q "$BUNDLE_ID" @@ -120,23 +138,26 @@ ASSETS_DIR="$MAESTRO_ROOT/assets" # leaving the device scaled. Force a known state before the normal tests. set_font_scale default -# maestro exits non-zero when the tag filter matches zero flows. That's not a -# real failure for us (e.g. running a single flow that has no accessibility -# variant), and letting it propagate aborts latter test suites. +# maestro-runner exits non-zero when the tag filter matches zero flows. That's +# not a real failure for us (e.g. running a single flow that has no +# accessibility variant), and letting it propagate aborts later test suites. run_maestro() { local tmp rc tmp=$(mktemp) - # `script` allocates a pseudo-TTY so maestro keeps + # `script` allocates a pseudo-TTY so the runner keeps # ANSI colors when piped through `tee`. + # Global flags (--device, --driver, --env, tags) come before `test`. if [[ "$OSTYPE" == darwin* ]]; then - script -q /dev/null maestro test "$@" 2>&1 | tee "$tmp" + # shellcheck disable=SC2086 + script -q /dev/null "$MAESTRO_BIN" --platform "$PLATFORM" --device "$DEVICE_ID" $DRIVER_ARGS $EXTRA "$@" test $FLOWS 2>&1 | tee "$tmp" else local cmd - cmd=$(printf '%q ' maestro test "$@") + # shellcheck disable=SC2086 + cmd=$(printf '%q ' "$MAESTRO_BIN" --platform "$PLATFORM" --device "$DEVICE_ID" $DRIVER_ARGS $EXTRA "$@" test $FLOWS) script -qc "$cmd" /dev/null 2>&1 | tee "$tmp" fi rc=${PIPESTATUS[0]} - if [ "$rc" -ne 0 ] && grep -q "did not match any Flows" "$tmp"; then + if [ "$rc" -ne 0 ] && grep -Eqi "did not match any [Ff]lows|no flows matched" "$tmp"; then echo "warn: no flows matched the tag filter — treating as success" >&2 rc=0 fi @@ -147,8 +168,7 @@ run_maestro() { set +e echo "=== Running maestro tests ===" -# shellcheck disable=SC2086 -run_maestro --device "$DEVICE_ID" --exclude-tags accessibility $EXTRA $FLOWS +run_maestro --exclude-tags accessibility EXIT_REGULAR=$? # These are the tests that require changing the system's settings @@ -156,8 +176,7 @@ EXIT_REGULAR=$? echo "=== Running maestro accessibility tests ===" set_font_scale large -# shellcheck disable=SC2086 -run_maestro --device "$DEVICE_ID" --include-tags accessibility $EXTRA $FLOWS +run_maestro --include-tags accessibility EXIT_A11Y=$? set -e diff --git a/.maestro/subflows/input_text.yaml b/.maestro/subflows/input_text.yaml new file mode 100644 index 000000000..7103ccfb7 --- /dev/null +++ b/.maestro/subflows/input_text.yaml @@ -0,0 +1,16 @@ +appId: swmansion.enriched.example +--- + +- runFlow: + when: + platform: Android + commands: + - inputText: + text: ${TEXT} + keyPress: true + +- runFlow: + when: + platform: iOS + commands: + - inputText: ${TEXT} diff --git a/apps/example/src/screens/TestScreen.tsx b/apps/example/src/screens/TestScreen.tsx index 160fda327..378034285 100644 --- a/apps/example/src/screens/TestScreen.tsx +++ b/apps/example/src/screens/TestScreen.tsx @@ -71,8 +71,8 @@ export function TestScreen({ htmlStyle={htmlStyle} placeholder="Type something here..." placeholderTextColor="rgb(0, 26, 114)" - selectionColor="deepskyblue" - cursorColor="dodgerblue" + selectionColor="transparent" + cursorColor="transparent" autoCapitalize="sentences" linkRegex={LINK_REGEX} onChangeText={(e) => editor.handleChangeText(e.nativeEvent)} @@ -212,6 +212,7 @@ const styles = StyleSheet.create({ fontFamily: 'Nunito-Regular', paddingVertical: 12, paddingHorizontal: 14, + tintColor: 'transparent', }, editorInputMax: { maxHeight: 400,