mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 20:48:24 +00:00
- 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.
108 lines
2.8 KiB
YAML
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"
|