Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
7f57e40
basic...
Rohit3523 Sep 16, 2025
3511beb
Added till pin and unpin
Rohit3523 Sep 16, 2025
2ec688c
more changes
Rohit3523 Sep 16, 2025
ab6298a
done
Rohit3523 Sep 17, 2025
070672d
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Sep 17, 2025
d3decea
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Sep 17, 2025
1c60a8f
chore: format code with Prettier [skip ci]
Rohit3523 Sep 17, 2025
447347e
change timeout to 60000
Rohit3523 Sep 17, 2025
00ead1c
Merge branch '3rd-set-of-room-test' of https://github.com/RocketChat/…
Rohit3523 Sep 17, 2025
b932ef4
fix
Rohit3523 Sep 17, 2025
894a8d6
fix
Rohit3523 Sep 17, 2025
3fa8084
chore: format code with Prettier [skip ci]
Rohit3523 Sep 17, 2025
72aac26
Fix for send message
Rohit3523 Sep 17, 2025
b11b611
Merge branch '3rd-set-of-room-test' of https://github.com/RocketChat/…
Rohit3523 Sep 17, 2025
1e8b205
discussion basic
Rohit3523 Sep 17, 2025
d5e78df
chore: format code with Prettier [skip ci]
Rohit3523 Sep 17, 2025
769ad49
Added test id to multi select
Rohit3523 Sep 17, 2025
a687d6a
done i guess
Rohit3523 Sep 17, 2025
1a88a2a
threads done
Rohit3523 Sep 17, 2025
46dc6f4
chore: format code with Prettier [skip ci]
Rohit3523 Sep 17, 2025
2a61582
some more changes
Rohit3523 Sep 17, 2025
9252979
Merge branch '3rd-set-of-room-test' of https://github.com/RocketChat/…
Rohit3523 Sep 17, 2025
3f9ebb3
added timeout
Rohit3523 Sep 17, 2025
9f01847
group dm done :)
Rohit3523 Sep 17, 2025
fa21bb7
Remove some index
Rohit3523 Sep 18, 2025
abc3d74
temporary removed toast message
Rohit3523 Sep 18, 2025
3d8f7e4
fix thread test
Rohit3523 Sep 18, 2025
8872b9c
bottomsheet fix for test to pass
Rohit3523 Sep 18, 2025
d6e318a
mark as unread done
Rohit3523 Sep 19, 2025
47ebea3
Should have 1 in room list
Rohit3523 Sep 19, 2025
e4029ee
room info test partial
Rohit3523 Sep 20, 2025
c22d2d3
chore: format code with Prettier [skip ci]
Rohit3523 Sep 20, 2025
7ca6def
more test
Rohit3523 Sep 22, 2025
d6b6fc4
make private channel...
Rohit3523 Sep 22, 2025
479e7ac
chore: format code with Prettier [skip ci]
Rohit3523 Sep 22, 2025
cac7b5b
correct
Rohit3523 Sep 22, 2025
a627d2b
Jump to message done :)
Rohit3523 Sep 22, 2025
1d8dfcf
chore: format code with Prettier [skip ci]
Rohit3523 Sep 22, 2025
ecb5ce7
rerun
Rohit3523 Sep 22, 2025
b8e8b45
revert
Rohit3523 Sep 22, 2025
012bb80
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Sep 23, 2025
f9a6a3d
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Sep 23, 2025
1f43efb
Merge branch 'develop' into 4th-batch-of-room-test
Rohit3523 Sep 24, 2025
376de2c
Added test id create-discussion-select-channel
Rohit3523 Sep 24, 2025
2d2c70f
fix discussion test on ios
Rohit3523 Sep 24, 2025
c38ee70
Ignore user fix
Rohit3523 Sep 24, 2025
765b1ae
chore: format code with Prettier [skip ci]
Rohit3523 Sep 24, 2025
5a4800b
more fix
Rohit3523 Sep 25, 2025
965dc06
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 1, 2025
59243c3
Merge branch 'develop' into maestro-ios-test-fix
Rohit3523 Oct 1, 2025
f37790f
ise multiple instance for iOS tests too
Rohit3523 Oct 1, 2025
eb8f4a6
fix artifact name
Rohit3523 Oct 3, 2025
74c6e42
make it android only
Rohit3523 Oct 3, 2025
cfa3bd1
thread test ios fix
Rohit3523 Oct 3, 2025
30df2de
Share message fix
Rohit3523 Oct 3, 2025
e22ee41
profile fix
Rohit3523 Oct 3, 2025
b2ad53f
chore: format code with Prettier [skip ci]
Rohit3523 Oct 3, 2025
24869f6
logout on ios fixed
Rohit3523 Oct 3, 2025
a43fcfd
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 3, 2025
42ddb23
fix command
Rohit3523 Oct 3, 2025
d86e8e3
Important for autofill no
Rohit3523 Oct 3, 2025
296d94d
some more changes
Rohit3523 Oct 3, 2025
554db10
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Oct 3, 2025
aa241c6
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Oct 8, 2025
a2a48dc
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Oct 8, 2025
a4844e9
ios notification fix
Rohit3523 Oct 9, 2025
49136c1
Merge branch 'develop' into maestro-ios-test-fix
Rohit3523 Oct 9, 2025
758ae87
clear app state for both os
Rohit3523 Oct 9, 2025
9d9015d
more changes
Rohit3523 Oct 9, 2025
dda2355
create dm group fix for ios
Rohit3523 Oct 9, 2025
686ccf4
ignore user fix
Rohit3523 Oct 9, 2025
a40c135
more test fix
Rohit3523 Oct 9, 2025
ebdc51e
retry logic for ios
Rohit3523 Oct 10, 2025
1d809ee
more change...
Rohit3523 Oct 10, 2025
4b44522
chore: format code with Prettier [skip ci]
Rohit3523 Oct 10, 2025
8345a7f
improve
Rohit3523 Oct 13, 2025
c6765f9
disable exit
Rohit3523 Oct 13, 2025
caa033f
Added timeout
Rohit3523 Oct 14, 2025
a3b3aa6
rerun
Rohit3523 Oct 14, 2025
83c51bb
revert
Rohit3523 Oct 14, 2025
916dcfe
rerun
Rohit3523 Oct 14, 2025
55a7f40
revert
Rohit3523 Oct 14, 2025
5e03656
upload recoding
Rohit3523 Oct 14, 2025
8879b8c
chore: format code with Prettier [skip ci]
Rohit3523 Oct 14, 2025
1522475
share message fix
Rohit3523 Oct 14, 2025
5b7bc84
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 14, 2025
3e537cf
room info fixed
Rohit3523 Oct 14, 2025
4857c93
Merge branch 'develop' into maestro-ios-test-fix
Rohit3523 Oct 14, 2025
2360d61
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 14, 2025
1db9493
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 14, 2025
11427f5
profile edit fix
Rohit3523 Oct 15, 2025
d2428d5
record room video...
Rohit3523 Oct 15, 2025
1416a4c
Merge branch 'develop' of https://github.com/RocketChat/Rocket.Chat.R…
Rohit3523 Oct 18, 2025
efaeb36
Try with nick-fields/retry
Rohit3523 Oct 18, 2025
36bd063
change
Rohit3523 Oct 18, 2025
1e63589
center submit button...
Rohit3523 Oct 19, 2025
4893416
maybe fix
Rohit3523 Oct 21, 2025
17f3a86
maybe a fix?
Rohit3523 Oct 21, 2025
c0dece6
remove log and video
Rohit3523 Oct 21, 2025
892a5a3
some changes
Rohit3523 Oct 21, 2025
b73383a
fix
Rohit3523 Oct 22, 2025
5b92a84
correct path
Rohit3523 Oct 22, 2025
5ef3dbf
try center
Rohit3523 Oct 22, 2025
d59ac72
Some more changes
Rohit3523 Oct 22, 2025
a91bfd4
chore: format code with Prettier [skip ci]
Rohit3523 Oct 22, 2025
c25a85b
erase 100
Rohit3523 Oct 22, 2025
f2f5624
Merge branch 'maestro-ios-test-fix' of https://github.com/RocketChat/…
Rohit3523 Oct 22, 2025
1e71e7b
chore: format code with Prettier [skip ci]
Rohit3523 Oct 22, 2025
2ba9216
Merge branch 'develop' into maestro-ios-test-fix
Rohit3523 Oct 22, 2025
9184a4c
remove android ss
Rohit3523 Oct 22, 2025
c4aa879
rerun 1
Rohit3523 Oct 23, 2025
499f9f8
revert
Rohit3523 Oct 23, 2025
90cb5c3
drawer animation
Rohit3523 Oct 23, 2025
5e65da3
remove screenshot
Rohit3523 Oct 23, 2025
87e5109
changes
Rohit3523 Oct 23, 2025
90ffb51
remove recording
Rohit3523 Oct 23, 2025
7207f01
Dix
Rohit3523 Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/build-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,9 @@ jobs:
uses: ./.github/workflows/maestro-ios.yml
needs: [e2e-build-ios]
secrets: inherit

strategy:
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
fail-fast: false
with:
shard: ${{ matrix.shard }}
2 changes: 1 addition & 1 deletion .github/workflows/maestro-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,4 @@ jobs:
with:
name: maestro-video-${{ inputs.shard }}
path: test_run_${{ inputs.shard }}_attempt_*.mp4
retention-days: 7
retention-days: 7
35 changes: 27 additions & 8 deletions .github/workflows/maestro-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: Maestro Tests on iOS

on:
workflow_call:
inputs:
shard:
required: true
type: string

jobs:
ios-test:
Expand Down Expand Up @@ -85,20 +89,35 @@ jobs:
xcrun simctl install $UDID "ios-simulator-app"

- name: Run Tests
run: |
export MAESTRO_DRIVER_STARTUP_TIMEOUT=120000
maestro test .maestro --format junit --output maestro-report.xml
id: maestro-tests
uses: nick-fields/retry@v3
with:
max_attempts: 3
timeout_minutes: 60
command: |
SHARD=${{ inputs.shard }}
echo "Running shard: $SHARD"
export MAESTRO_DRIVER_STARTUP_TIMEOUT=120000

maestro test .maestro \
--exclude-tags=util \
--include-tags=test-$SHARD \
--exclude-tags=android-only \
--format junit \
--output maestro-report.xml

- name: Upload Test Report
- name: Maestro Test Report
if: always()
uses: actions/upload-artifact@v4
with:
name: Test Report
name: Test Report - Shard ${{ inputs.shard }}
path: maestro-report.xml
retention-days: 28

- name: Upload Maestro Logs
- name: iOS Maestro Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: iOS Maestro Logs
path: ~/.maestro/tests/
name: iOS Maestro Logs - Shard ${{ inputs.shard }}
path: ~/.maestro/tests/
retention-days: 28
20 changes: 18 additions & 2 deletions .maestro/helpers/erase-text.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,28 @@ tags:
- 'util'

---
- longPressOn:
id: ${id}
- runFlow:
when:
true: ${id != null}
commands:
- longPressOn:
id: ${id}
- runFlow:
when:
true: ${text != null}
commands:
- doubleTapOn:
text: .*${text}.*
- runFlow:
when:
visible:
text: 'Select All'
commands:
- tapOn: Select All
- eraseText: 1
- runFlow:
when:
notVisible:
text: 'Select All'
commands:
- eraseText: 100
17 changes: 17 additions & 0 deletions .maestro/helpers/hide-keyboard.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
appId: chat.rocket.reactnative
name: Hide Keyboard
tags:
- 'util'

---
- runFlow:
when:
platform: android
commands:
- hideKeyboard
- runFlow:
when:
platform: iOS
commands:
- tapOn:
point: 1%,20%
Comment on lines +12 to +17

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Hardcoded iOS coordinate is fragile and may not work across device sizes or orientations.

The iOS keyboard dismissal uses a hardcoded coordinate point: 1%,20% instead of an element selector. This approach is brittle because:

  • It assumes a fixed screen layout and will break on landscape orientation or different device sizes
  • If the app structure changes, the tap location becomes invalid
  • No clear documentation of what UI element this coordinate targets

Consider using an id-based selector or a visibility condition if an appropriate element is available, or document why the coordinate is stable (e.g., "taps outside all interactive elements").

1 change: 1 addition & 0 deletions .maestro/helpers/launch-app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ tags:
- runFlow:
when:
visible: '.*Pixel Launcher.*'
platform: Android
commands:
- tapOn: 'Close App'
- assertVisible: 'Add workspace'
16 changes: 9 additions & 7 deletions .maestro/helpers/login-with-deeplink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,8 @@ tags:
- 'util'

---
- runFlow:
when:
true: CLEAR_STATE
platform: android
commands:
- clearState
- stopApp: chat.rocket.reactnative
- clearState
- stopApp: chat.rocket.reactnative
- evalScript: ${output.login = output.utils.login(USERNAME, PASSWORD)}
- runFlow:
file: 'open-deeplink.yaml'
Expand All @@ -36,6 +31,13 @@ tags:
- assertNotVisible:
text: '.*Allow.*'
optional: true
- runFlow:
when:
visible: '.*Would like to send you notifications.*'
platform: iOS
commands:
- tapOn:
point: 65%,60%
Comment on lines +34 to +40

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Hardcoded iOS coordinate for notification permission is fragile.

Similar to the keyboard helper, this iOS notification flow uses a hardcoded coordinate point: 65%,60% instead of an element selector. This approach is brittle and will break if:

  • The notification alert layout changes
  • The app runs in landscape orientation
  • Device screen size varies

Android uses text matching ('.*Allow.*') for similar permission flows, which is more robust. Consider whether iOS can also use text matching or an id-based selector.

🤖 Prompt for AI Agents
In .maestro/helpers/login-with-deeplink.yaml around lines 34 to 40, the iOS
notification permission uses a hardcoded coordinate (point: 65%,60%), which is
fragile; replace the tapOn coordinate with a selector-based action (prefer an
accessibility id or regex text match for the alert button, e.g. match button
label like 'Allow' or use the alert button's accessibility identifier) so the
test targets the actual button text/ID rather than screen coordinates; if a
selector cannot be determined for all devices, implement a prioritized strategy:
1) try element selector (id/accessibilityLabel), 2) try regex text match for
common labels, 3) only as a last-resort keep a coordinate fallback and document
it.

- extendedWaitUntil:
visible:
id: 'rooms-list-view'
Expand Down
14 changes: 11 additions & 3 deletions .maestro/helpers/logout.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@ tags:
- tapOn:
id: 'settings-logout'

- extendedWaitUntil:
visible:
text: '.*You will be logged out of this application.*'
timeout: 60000

- assertVisible:
text: Logout
index: 0

- runFlow:
when:
platform: Android
Expand All @@ -60,10 +69,9 @@ tags:
platform: iOS
commands:
- tapOn:
text: Logout
index: 1
point: '65%,56%'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Replace coordinate-based tap with id-based selector.

The coordinate-based tap (point: '65%,56%') is brittle and will break if the UI layout changes. This creates an inconsistency with the Android implementation (lines 64-65) which uses a text-based selector.

Consider exposing a testID for the iOS logout button in the confirmation dialog and using it here, similar to how Android targets the button by text. This would make the test more maintainable and aligned across platforms.

🤖 Prompt for AI Agents
In .maestro/helpers/logout.yaml around line 72, replace the brittle
coordinate-based tap ("point: '65%,56%'") with an id/accessibility selector: add
or use an iOS testID (accessibilityIdentifier) on the logout confirmation button
in the app code, then change this step to tap by that id (e.g., selector: { id:
'logoutConfirmButton' } or equivalent Maestro selector syntax) so the test
matches the Android text-based approach and is resilient to layout changes.


- extendedWaitUntil:
visible:
id: 'new-server-view'
timeout: 60000
timeout: 5000
2 changes: 2 additions & 0 deletions .maestro/helpers/navigate-to-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ tags:
- 'util'

---
- waitForAnimationToEnd
- scrollUntilVisible:
element:
id: 'rooms-list-view-item-${ROOM}'
- waitForAnimationToEnd
- tapOn:
id: 'rooms-list-view-item-${ROOM}'
- extendedWaitUntil:
Expand Down
9 changes: 8 additions & 1 deletion .maestro/helpers/open-deeplink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,11 @@ tags:
visible: '.*Open in.*'
platform: iOS
commands:
- tapOn: Open
- tapOn:
text: Open
index: 0
optional: true
- tapOn:
text: Open
index: 1
optional: true
Comment on lines +14 to +21

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Index-based multi-tap sequencing is fragile; clarify the intent and add documentation.

Lines 14–21 replace a single tap with two sequential taps at different indices. This suggests handling multiple "Open" buttons in a share sheet, but the intent is unclear:

  • Why two taps? Is the second tap a fallback, or are both always required?
  • Brittle index assumptions: If the iOS sheet UI changes and the number/order of "Open" buttons shifts, this will break.
  • optional: true: Both taps are marked optional, which mitigates outright failure but may mask underlying UI instability.

Recommendation: Add an inline comment explaining the scenario (e.g., "iOS 15+ share sheet can show multiple 'Open' buttons; we tap both as fallback") and consider whether a text pattern or visibility condition would be more resilient.

🤖 Prompt for AI Agents
In .maestro/helpers/open-deeplink.yaml around lines 14 to 21, the two sequential
taps using hard-coded indices for "Open" are fragile and unclear; add an inline
comment explaining the exact intent (e.g., "tap index 0, fallback to index 1 on
iOS X share-sheet behavior") and then replace the brittle index-only approach
with a more robust sequence: attempt to tap the visible/first matching "Open"
element by text or visibility predicate and only fall back to the second index
if the first is not present, keeping optional: true for the fallback; also add a
brief note in the file header describing the iOS versions/conditions that
require this behavior so future reviewers understand the rationale.

1 change: 1 addition & 0 deletions .maestro/tests/assorted/accessibility-and-appearance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ onFlowComplete:
- evalScript: ${output.utils.deleteCreatedUsers()}
tags:
- test-5
- android-only

---
- evalScript: ${output.user = output.utils.createUser()}
Expand Down
2 changes: 1 addition & 1 deletion .maestro/tests/assorted/broadcast.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ tags:

# should have the message created earlier
- assertVisible:
text: 'message'
id: 'message-content-message'

# should tap on reply button and navigate to direct room
- assertVisible:
Expand Down
7 changes: 3 additions & 4 deletions .maestro/tests/assorted/profile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ tags:

---
- evalScript: ${output.user = output.utils.createUser()}

- runFlow:
file: '../../helpers/login-with-deeplink.yaml'
env:
Expand Down Expand Up @@ -103,6 +102,7 @@ tags:
element:
id: 'profile-view-submit'
timeout: 60000
centerElement: true
- tapOn:
id: 'profile-view-submit'

Expand All @@ -127,6 +127,7 @@ tags:
element:
id: 'profile-view-submit'
timeout: 60000
centerElement: true
- tapOn:
id: 'profile-view-submit'

Expand All @@ -146,12 +147,10 @@ tags:
env:
id: 'profile-view-email'
- inputText: mobile+profileChangesNew${output.random()}@rocket.chat
- tapOn:
text: '.*Email.*'
index: 0
- scrollUntilVisible:
element:
id: 'profile-view-submit'
centerElement: true
timeout: 60000
- tapOn:
id: 'profile-view-submit'
Expand Down
4 changes: 2 additions & 2 deletions .maestro/tests/room/create-dm-group.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ tags:
# should navigate to create DM
- extendedWaitUntil:
visible:
text: '.*Direct message.*'
id: 'new-message-view-create-direct-message'
timeout: 60000
- tapOn:
text: '.*Direct message.*'
id: 'new-message-view-create-direct-message'

# should add users
- extendedWaitUntil:
Expand Down
9 changes: 5 additions & 4 deletions .maestro/tests/room/discussion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ tags:
visible:
id: 'create-discussion-view'
timeout: 60000
- tapOn: 'Select a channel'
- tapOn:
id: 'create-discussion-select-channel'
- extendedWaitUntil:
visible:
id: 'action-sheet'
Expand Down Expand Up @@ -141,7 +142,7 @@ tags:
timeout: 60000
- extendedWaitUntil:
visible:
text: ${output.room.name}
text: .*${output.room.name}.*
timeout: 60000
Comment on lines 143 to 146

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Inconsistent selector strategy: line 145 retains text-based regex while rest of file uses id-based selectors.

Line 145 uses text: .*${output.room.name}.*, which breaks the otherwise consistent migration to stable id-based selectors. Consider migrating this to an id-based selector (e.g., id: 'discussions-view-header-${output.room.name}' or similar) to improve reliability and align with the broader test refactoring strategy.

Is there a reason this element cannot be targeted by a stable testID, or is this an oversight during refactoring?


🏁 Script executed:

#!/bin/bash
# View the discussion.yaml file with line numbers to verify selector patterns
cat -n .maestro/tests/room/discussion.yaml | sed -n '40,55p; 125,150p; 310,325p'

Length of output: 1748


🏁 Script executed:

#!/bin/bash
# Get overall statistics on selector usage in the file
echo "=== Text-based selectors (text:) ==="
rg -n "^\s+text:" .maestro/tests/room/discussion.yaml | head -20

echo ""
echo "=== ID-based selectors (id:) ==="
rg -n "^\s+id:" .maestro/tests/room/discussion.yaml | head -20

echo ""
echo "=== Total line count ==="
wc -l .maestro/tests/room/discussion.yaml

Length of output: 1154


Fix two selector inconsistencies to complete migration to id-based selectors:

  1. Line 145: Replace text: .*${output.room.name}.* with an id-based selector (e.g., id: 'discussions-view-header-${output.room.name}' or appropriate testID). This regex pattern is fragile and inconsistent with the file's migration pattern (see lines 54, 317, 323 for working examples of interpolated id selectors).

  2. Line 130: Add quotes around the id value: change id: message-composer-actions to id: 'message-composer-actions' to match the formatting at line 127 and maintain YAML consistency throughout the file.

🤖 Prompt for AI Agents
In .maestro/tests/room/discussion.yaml around lines 143-146 and line 130,
replace the fragile regex text selector at line 145 with an id-based selector
that interpolates the room name (for example use id:
'discussions-view-header-${output.room.name}' or the appropriate testID used
elsewhere), and also add quotes around the id value at line 130 so it reads id:
'message-composer-actions' to match the file’s id-based selector formatting and
YAML consistency.

- tapOn:
id: multi-select-discussion-name
Expand Down Expand Up @@ -313,10 +314,10 @@ tags:
# should navigate to discussion
- extendedWaitUntil:
visible:
text: .*${output.discussionFromNewMessage}.*
id: 'discussions-view-${output.discussionFromNewMessage}'
timeout: 60000
- tapOn:
text: .*${output.discussionFromNewMessage}.*
id: 'discussions-view-${output.discussionFromNewMessage}'
- extendedWaitUntil:
visible:
id: 'room-view-title-${output.discussionFromNewMessage}'
Expand Down
Loading
Loading