Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
da87782
basic
Rohit3523 Oct 1, 2025
738c521
more changes
Rohit3523 Oct 1, 2025
3bca05f
more changes
Rohit3523 Oct 1, 2025
61cf117
chore: format code with Prettier [skip ci]
Rohit3523 Oct 1, 2025
c523859
trigger build
Rohit3523 Oct 1, 2025
a642d0e
revert
Rohit3523 Oct 1, 2025
4618486
upload maestro screenshots
Rohit3523 Oct 1, 2025
3c07c88
added create user in create room
Rohit3523 Oct 1, 2025
9561185
more test fix
Rohit3523 Oct 1, 2025
908e2c2
fix screenshot path
Rohit3523 Oct 1, 2025
5b1c9dc
press enter to search in join from directory
Rohit3523 Oct 3, 2025
5501e35
join from directory improve
Rohit3523 Oct 3, 2025
78c10cb
wait for room list to visible after login
Rohit3523 Oct 3, 2025
1c026b3
dispatch app ready after oauth login
Rohit3523 Oct 3, 2025
c136069
chore: format code with Prettier [skip ci]
Rohit3523 Oct 3, 2025
c2544a3
Merge branch 'develop' into deeplink-login-maestro
Rohit3523 Oct 6, 2025
413c4ea
Merge branch 'develop' into deeplink-login-maestro
Rohit3523 Oct 6, 2025
58c939d
Remove screenshot
Rohit3523 Oct 6, 2025
cff98f4
Uppercase env
Rohit3523 Oct 6, 2025
07a5056
use Maestro 2.0.0
Rohit3523 Oct 6, 2025
49c47ce
Upload maestro dir
Rohit3523 Oct 6, 2025
cb29e60
correct path
Rohit3523 Oct 6, 2025
810be28
random commit
Rohit3523 Oct 6, 2025
87644b3
revert
Rohit3523 Oct 6, 2025
8dd5d6d
log api response
Rohit3523 Oct 6, 2025
ec5da65
log body
Rohit3523 Oct 7, 2025
ff2c700
rerun
Rohit3523 Oct 7, 2025
60e123f
admin console
Rohit3523 Oct 7, 2025
4299e38
Remove logs
Rohit3523 Oct 7, 2025
211f905
don't upload maestro dir
Rohit3523 Oct 7, 2025
9afc9a0
Remove unused
Rohit3523 Oct 7, 2025
3341dbf
use latest maestro
Rohit3523 Oct 7, 2025
a9ec55e
space fix
Rohit3523 Oct 7, 2025
c4ed652
space fix
Rohit3523 Oct 7, 2025
7e01b3a
remove launch app and stop app before starting with deeplink
Rohit3523 Oct 7, 2025
12785cc
stop app before trying to login...
Rohit3523 Oct 7, 2025
87fc3e5
clear app state
Rohit3523 Oct 7, 2025
fc9f10e
deeplink condition for ios
Rohit3523 Oct 7, 2025
32e8101
added clear state env
Rohit3523 Oct 7, 2025
3d35940
press allow notification on all
Rohit3523 Oct 7, 2025
8dad0f7
change
Rohit3523 Oct 7, 2025
920fb66
mark optional
Rohit3523 Oct 7, 2025
ba4798b
nope
Rohit3523 Oct 7, 2025
d467442
optional
Rohit3523 Oct 7, 2025
17e62de
upload maestro
Rohit3523 Oct 7, 2025
b50c9dd
pixel launcher hide
Rohit3523 Oct 7, 2025
f5d81d9
remove maestro folder
Rohit3523 Oct 7, 2025
1faff20
Merge branch 'develop' into deeplink-login-maestro
diegolmello Oct 7, 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
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
42 changes: 42 additions & 0 deletions .maestro/helpers/login-with-deeplink.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
appId: chat.rocket.reactnative
name: Login with Deeplink
tags:
- 'util'

---
- runFlow:
when:
true: CLEAR_STATE
platform: android
commands:
- clearState
- stopApp: chat.rocket.reactnative
- evalScript: ${output.login = output.utils.login(USERNAME, PASSWORD)}
- runFlow:
file: 'open-deeplink.yaml'
env:
link: ${output.utils.getDeepLink('auth', server || output.data.server, 'userId=', output.login.userId, '&token=', output.login.authToken)}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Token in deeplink can leak in logs/artifacts; add safeguards.

Opening a URL with authToken risks exposure in Maestro logs and uploaded CI artifacts. Mitigate by:

  • Masking/redacting the link in logs, or
  • Using a short‑lived/ephemeral code instead of raw token, and/or
  • Revoking the token post‑login (logout API) at test teardown, and ensuring artifacts are private.

I can provide a small teardown helper to revoke tokens after tests if desired.

- runFlow:
when:
platform: android
commands:
- runFlow:
when:
visible: '.*Pixel Launcher.*'
commands:
- tapOn: 'Close App'
- extendedWaitUntil:
visible:
text: '.*Allow.*'
timeout: 30000
optional: true
- tapOn:
text: '.*Allow.*'
optional: true
- assertNotVisible:
text: '.*Allow.*'
optional: true
- extendedWaitUntil:
visible:
id: 'rooms-list-view'
timeout: 60000
1 change: 1 addition & 0 deletions .maestro/helpers/open-deeplink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ tags:
- runFlow:
when:
visible: '.*Open in.*'
platform: iOS
commands:
- tapOn: Open
1 change: 0 additions & 1 deletion .maestro/scripts/data-setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ const createDM = (username, password, otherUsername) => {
})
});

console.log(JSON.stringify(json(result.body), null, 2));
return json(result.body);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ tags:
- test-13

---
- runFlow: ../../helpers/launch-app.yaml
- runFlow: ../../helpers/login.yaml
- evalScript: ${output.user = output.utils.createUser()}
- runFlow:
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}

# Show alerts as Toasts
- tapOn: 'Menu'
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/accessibility-and-appearance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ tags:

---
- evalScript: ${output.user = output.utils.createUser()}
- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
7 changes: 3 additions & 4 deletions .maestro/tests/assorted/broadcast.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@ tags:
- evalScript: ${output.user = output.utils.createUser()}
- evalScript: ${output.otherUser = output.utils.createUser()}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down Expand Up @@ -108,12 +107,12 @@ tags:
message: 'message'

# should login as user without write message authorization and enter room
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.otherUser.username}
PASSWORD: ${output.otherUser.password}
CLEAR_STATE: true
- runFlow:
file: '../../helpers/search-and-navigate-room.yaml'
env:
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/change-avatar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ tags:
- evalScript: ${output.user = output.utils.createUser()}
- evalScript: ${output.loggedInUser = output.utils.login(output.user.username, output.user.password)}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/changeserver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ tags:
- evalScript: ${output.user = output.utils.createUser()}
- evalScript: ${output.room = output.utils.createRandomRoom(output.user.username, output.user.password)}

- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
4 changes: 1 addition & 3 deletions .maestro/tests/assorted/delete-server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@ tags:

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

- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/display-perf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ tags:

---
- evalScript: ${output.user = output.utils.createUser()}
- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
35 changes: 17 additions & 18 deletions .maestro/tests/assorted/e2e-encryption.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,21 @@ tags:
- evalScript: ${output.userB = output.utils.createUser()}

# login as User B and change E2E password
- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userB.username}
PASSWORD: ${output.userB.password}
- runFlow: './utils/navigate-to-e2ee-security.yaml'
- runFlow: './utils/change-e2ee-key.yaml'

# login as User A and change E2E password
- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userA.username}
PASSWORD: ${output.userA.password}
CLEAR_STATE: true
- runFlow: './utils/navigate-to-e2ee-security.yaml'
- runFlow: './utils/change-e2ee-key.yaml'

Expand Down Expand Up @@ -146,12 +145,12 @@ tags:

# If session is not encrypted, it shouldnt trigger read messages
# should login as UserB, dont set e2ee password and dont read messages
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userB.username}
PASSWORD: ${output.userB.password}
CLEAR_STATE: true
- runFlow:
file: '../../helpers/navigate-to-room.yaml'
env:
Expand All @@ -162,12 +161,12 @@ tags:
timeout: 60000

# should login as UserA and check message is not read
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userA.username}
PASSWORD: ${output.userA.password}
CLEAR_STATE: true
- runFlow:
file: '../../helpers/navigate-to-room.yaml'
env:
Expand All @@ -179,12 +178,12 @@ tags:
timeout: 60000

# should login as UserB, set e2ee password and read messages
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userB.username}
PASSWORD: ${output.userB.password}
CLEAR_STATE: true
- runFlow:
file: '../../helpers/navigate-to-room.yaml'
env:
Expand Down Expand Up @@ -212,12 +211,12 @@ tags:
message: 'm3'

# should login as UserA and check message is read
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userA.username}
PASSWORD: ${output.userA.password}
CLEAR_STATE: true
- runFlow:
file: '../../helpers/navigate-to-room.yaml'
env:
Expand All @@ -241,22 +240,22 @@ tags:
timeout: 60000

# Login as UserA, reset user e2ee key, reset room E2EE key and send a message
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userA.username}
PASSWORD: ${output.userA.password}
CLEAR_STATE: true

# should reset user E2EE key, login again and recreate keys
- runFlow: './utils/navigate-to-e2ee-security.yaml'
- runFlow: './utils/reset-e2ee-key.yaml'
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userA.username}
PASSWORD: ${output.userA.password}
CLEAR_STATE: true
- runFlow: './utils/navigate-to-e2ee-security.yaml'
- runFlow: './utils/change-e2ee-key.yaml'

Expand Down Expand Up @@ -312,12 +311,12 @@ tags:
message: 'm4'

# Login as UserB, accept new room key, send a message and read everything
- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.userB.username}
PASSWORD: ${output.userB.password}
CLEAR_STATE: true

# should send message and be able to read it
- runFlow:
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/i18n.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ tags:
- evalScript: ${output.user = output.utils.createUser()}
- evalScript: ${output.room = output.utils.createRandomRoom(output.user.username, output.user.password)}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/in-app-notification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ tags:
- evalScript: ${output.result = output.utils.createDM(output.receiver.username, output.receiver.password, output.sender.username)}
- evalScript: ${output.dmCreatedRid = output.result.room.rid}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.receiver.username}
PASSWORD: ${output.receiver.password}
Expand Down
11 changes: 4 additions & 7 deletions .maestro/tests/assorted/join-from-directory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@ tags:
- evalScript: ${output.result = output.utils.sendMessage(output.user.username, output.user.password, 'join-from-directory', output.thread)}
- evalScript: ${output.threadReply = output.utils.sendMessage(output.user.username, output.user.password, output.result.message.rid, 'insidethread', output.result.message._id)}

- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand All @@ -42,6 +41,7 @@ tags:
- tapOn:
id: 'directory-view-search'
- inputText: join-from-directory
- pressKey: Enter
- extendedWaitUntil:
visible:
id: 'directory-view-item-join-from-directory'
Expand Down Expand Up @@ -103,11 +103,7 @@ tags:
- tapOn:
id: 'directory-view-search'
- inputText: ${output.otherUser.username}

# This is to handle debouncing on search
- eraseText: 1
- inputText: ${output.otherUser.username.slice(-1)}

- pressKey: Enter
- extendedWaitUntil:
visible:
id: 'directory-view-item-${output.otherUser.username}'
Expand Down Expand Up @@ -151,6 +147,7 @@ tags:
- tapOn:
id: 'directory-view-search'
- inputText: ${output.team}
- pressKey: Enter
- extendedWaitUntil:
visible:
id: 'directory-view-item-${output.team}'
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/join-protected-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ tags:
---
- evalScript: ${output.user = output.utils.createUser()}

- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/join-public-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ tags:
---
- evalScript: ${output.user = output.utils.createUser()}

- runFlow: '../../helpers/launch-app.yaml'
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/profile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ tags:
---
- evalScript: ${output.user = output.utils.createUser()}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
3 changes: 1 addition & 2 deletions .maestro/tests/assorted/setting.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ tags:
- evalScript: ${output.user = output.utils.createUser()}
- evalScript: ${output.room = output.utils.createRandomRoom(output.user.username, output.user.password)}

- runFlow: ../../helpers/launch-app.yaml
- runFlow:
file: '../../helpers/login.yaml'
file: '../../helpers/login-with-deeplink.yaml'
env:
USERNAME: ${output.user.username}
PASSWORD: ${output.user.password}
Expand Down
Loading
Loading