Files
zapstore/maestro/flows/install_older_version.yaml
T
Henrique Velloso 4fd2fc05fc Update version number and refine visibility checks in Maestro flows
- Incremented app version in `pubspec.yaml` from 1.0.0+1000 to 1.0.0+3000.
- Replaced `extendedWaitUntil` with `assertVisible` in multiple Maestro flow files to streamline visibility checks and improve readability.
- Added a new flow `check_signed_in_test_account.yaml` to verify if the app is already signed in with the test account, enhancing the automated testing process.
2026-02-18 23:09:17 -03:00

108 lines
2.8 KiB
YAML

appId: dev.zapstore.app
---
# =============================================================
# Sub-flow: Install an older version of an app
#
# Expects to be on the app detail page with the app uninstalled.
# Scrolls to "Debug: All Versions", expands it, and installs
# the second version in the list (the first older version).
#
# Handles (in order):
# - Android system "Update" confirmation dialog
# - Amber signing request ("Accept")
# - Samsung "Trust and install app" security dialog
# - Android system "Install" dialog
# - Samsung "package analysis error" dialog
#
# After completion, the older version is installed ("Open" visible).
# =============================================================
# Dismiss Android notification permission dialog if shown
- runFlow:
when:
visible: "Allow"
commands:
- tapOn: "Allow"
- scrollUntilVisible:
element:
text: ".*All Versions.*"
direction: DOWN
- tapOn:
text: ".*All Versions.*"
label: "Expand versions list"
- waitForAnimationToEnd
# Scroll to make more versions visible
- scroll
# Use "below" selector relative to the "All Versions" header:
# index 0 = latest version's Install
# index 1 = second (older) version's Install
- tapOn:
text: "Install"
below:
text: ".*All Versions.*"
index: 1
label: "Install older version"
# Wait for the first dialog to appear.
# Regex must match the FULL accessibilityText / text of each element
# (Java matches()), so use .* wildcards around partial phrases.
- extendedWaitUntil:
visible:
text: "(?:.*Do you want to (?:update|install).*|Accept|Trust and install app)"
timeout: 60000
# Amber may ask to sign a request during install
- runFlow:
when:
visible: "Accept"
commands:
- tapOn: "Accept"
- assertVisible:
text: "(?:.*Do you want to (?:update|install).*|Trust and install app)"
# Samsung security dialog (may not appear if source already trusted)
- runFlow:
when:
visible: "Trust and install app"
commands:
- tapOn: "Trust and install app"
- assertVisible:
text: ".*Do you want to (?:update|install).*"
# Handle Android system install dialog
- runFlow:
when:
visible:
text: ".*Do you want to install.*"
commands:
- tapOn: "Install"
# Handle Android system update/downgrade dialog
- runFlow:
when:
visible:
text: ".*Do you want to update.*"
commands:
- tapOn: "Update"
# Wait for either "App installed" / "Open" or Samsung "package analysis error".
- extendedWaitUntil:
visible:
text: "(?:Open|OK)"
timeout: 60000
# Dismiss Samsung dialog if it appeared
- runFlow:
when:
visible: "OK"
commands:
- tapOn: "OK"
# Confirm install completed
- assertVisible: "Open"