Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

e2e: initial iOS test flows w/ Maestro #4257

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions apps/tlon-mobile/tests/00-start.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
appId: io.tlon.groups
---
- clearState:
appId: io.tlon.groups
- launchApp:
appId: io.tlon.groups
- runFlow: 01-self-hosted-login.yaml
- runFlow: 02-home-tab.yaml
- runFlow: 03-create-group.yaml
36 changes: 36 additions & 0 deletions apps/tlon-mobile/tests/01-self-hosted-login.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
appId: io.tlon.groups
---
- assertVisible: 'Welcome to TM'
- swipe:
direction: 'DOWN'
- waitForAnimationToEnd:
timeout: 5000
- tapOn: 'Have an account? Log in'
- tapOn: 'Or configure self hosted'
# Open EULA
- tapOn:
point: '73%,55%'
- waitForAnimationToEnd:
timeout: 5000
- assertVisible: 'EULA'
- tapOn:
point: '9%,7%'
- waitForAnimationToEnd:
timeout: 5000
# Log in
- tapOn:
id: 'textInput shipUrl'
- inputText: ${URL}
- tapOn:
id: 'textInput accessCode'
- inputText: ${CODE}
- tapOn: 'Connect'
# Dismiss password save prompt
- tapOn: 'Not now'
- tapOn: 'Next'
- assertVisible: 'Welcome to TM'
- swipe:
direction: 'DOWN'
- waitForAnimationToEnd:
timeout: 5000
- assertVisible: 'Home'
50 changes: 50 additions & 0 deletions apps/tlon-mobile/tests/02-home-tab.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
appId: io.tlon.groups
---
# Open Fashion group and confirm the 'S/S 2025' channel is visible;
# navigate back to home tab
- scrollUntilVisible:
element: 'Fashion'
direction: 'DOWN'
speed: 75
- waitForAnimationToEnd:
timeout: 5000
- tapOn: 'Fashion'
- assertVisible: 'S/S 2025'
- tapOn:
point: '9%,7%'
- scrollUntilVisible:
element: 'Pinned'
direction: 'UP'
speed: 100
# Tap on each filtering tab and confirm the correct groups/DMs are visible
- tapOn: 'All'
- assertVisible: 'Tlon Local'
- tapOn: 'Groups'
- assertVisible: 'Tlon Local'
- tapOn: 'Messages'
- assertVisible: 'galen'
- tapOn: 'All'
# Open the filtering input and look for Tlon Local in each tab
- tapOn:
point: '79%,7%'
- tapOn: 'Find by name'
- inputText: 'Tlon'
- assertVisible: 'Tlon Local'
- tapOn: 'Groups'
- assertVisible: 'Tlon Local'
- tapOn: 'Messages'
- assertNotVisible: 'Tlon Local'
- tapOn: 'Clear'
- tapOn: 'Close'
# Open the filtering input and look for 'galen' in each tab
- tapOn:
point: '79%,7%'
- tapOn: 'Find by name'
- inputText: 'gal'
- assertVisible: 'galen'
- tapOn: 'Groups'
- assertNotVisible: 'galen'
- tapOn: 'All'
- assertVisible: 'galen'
- tapOn: 'Clear'
- tapOn: 'Close'
43 changes: 43 additions & 0 deletions apps/tlon-mobile/tests/03-create-group.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
appId: io.tlon.groups
---
# Create an empty group from the home screen
- tapOn:
point: '91%,7%'
- waitForAnimationToEnd:
timeout: 5000
- assertVisible: 'Start a chat'
- tapOn: 'Create group'
- tapOn: 'Skip'
- tapOn: 'Group name'
- inputText: 'Automated Test Group'
- tapOn:
point: '50%,33%'
- waitForAnimationToEnd:
timeout: 5000
- assertVisible: 'Welcome'
- assertVisible:
'This is your group’s default welcome channel. Feel free to rename it or
create additional channels.'
## Verify that channel properties sheet opens and all options are visible
- tapOn:
point: '91%,7%'
- waitForAnimationToEnd:
timeout: 5000
- assertVisible: 'Channel in Automated Test Group'
- tapOn: 'Notifications'
- assertVisible: 'Only mentions and replies'
- tapOn:
point: '17%,42%'
- tapOn: 'Manage channels'
- assertVisible: 'Create a channel'
- tapOn:
point: '9%,7%'
- tapOn: 'Welcome'
- tapOn:
point: '91%,7%'
- tapOn: 'Invite people'
- assertVisible: 'Select people to invite'
- swipe:
direction: 'DOWN'
- tapOn:
point: '9%,7%'
Loading