chore: setup ui automator for appium replacement (WPB-8645)#4011
chore: setup ui automator for appium replacement (WPB-8645)#4011yamilmedina merged 7 commits intodevelopfrom
Conversation
New ADR(s) in this PR 📚:6. Simplified enterprise loginDate: 2025-01-23 StatusAccepted ContextStarting (potentially) from Android 4.12.x the app will support the new enterprise login flows, this means in practice that the app needs to support both flows current/old. The current flow (old)Customers configure their setup manually in their backend. The new flowCustomers, via team settings and Back-office tools, will be able to load this config to facilitate the decision of which flow the user must use. This will make the app, in conjunction with the backend, decide for the user which path/flow they must use to login by just having one input field, “email or SSO code”. DecisionWe will keep both flows, the current as-is and the new one, being the app able to decide which one to use based on the configuration received from the backend. %%{
init: {
'theme': 'neutral'
}
}%%
flowchart LR
z((App loads</br> BE/API context)) --> di
di{BE supports </br>API >= 8 ?}:::someclass -- Yes --> a1
di -- No</br>OR Authenticated Proxy --> b1
classDef someclass fill:#f96
subgraph new_flow
a0@{ shape: braces, label: "These flows are selected by the app and the BE" }
a1[StartLoginScreen </br>'Enter email or SSO code'] -- looks like SSO code --> a2[Go to SSO flow path 6-7]
a1 -- Looks like an email? --> a3[BE replies which path to go 1-4]
end
subgraph current_flow
b0@{ shape: braces, label: "These flows are selected manually by the user" }
b1[WelcomeScreen] --> b2[LoginEmailScreen]
b1 --> b3[LoginWithSSOCodeScreen]
end
Consequences
7. Introducing UIAutomator for integrated testingDate: 2025-05-06 StatusAccepted ContextQA wants to migrate from Appium to a new framework to run tests and being closed to the source code that we are testing. DecisionUIAutomator seems to be the best option for us, as it is a framework that is already in the Android SDK and it is more flexible than Espresso, this last one is more limited to the app under test because of mocks and stubs. ConsequencesThe new structure of the project will be as follows: |
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #4011 +/- ##
===========================================
- Coverage 46.04% 46.02% -0.03%
===========================================
Files 519 519
Lines 18081 18092 +11
Branches 3037 3042 +5
===========================================
Hits 8326 8326
- Misses 8891 8902 +11
Partials 864 864 see 4 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
Built wire-android-staging-compat-pr-4011.apk is available for download |
|
Built wire-android-dev-debug-pr-4011.apk is available for download |



PR Submission Checklist for internal contributors
The PR Title
SQPIT-764The PR Description
What's new in this PR?
Appium is set to be replaced, so this adds the config projects to run
UIAutomatortests for QA start playing with the tool.Next steps left for other PRs, when QA migration is almost set to complete:
Issues
Appium is set to be replaced.
Causes (Optional)
Guideline from QA to get the tests closer to the code.
Solutions
After syncing with @CinnamonNinja and @emmaoke-w we agreed to move to UIAutomator as it is a 1:1 replacement for the framework
Testing
Test Coverage (Optional)
How to Test
LoginTestunder:tests:testsCoreAttachments
Screen.Recording.2025-05-05.at.16.54.48.mov
PR Post Submission Checklist for internal contributors (Optional)
PR Post Merge Checklist for internal contributors
References
feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.