95 lines
2.7 KiB
YAML
95 lines
2.7 KiB
YAML
|
|
# Maestro flow: Capture F-Droid screenshots for Tilfluktsrom
|
||
|
|
#
|
||
|
|
# Usage (from project root):
|
||
|
|
# maestro test .maestro/screenshots.yaml
|
||
|
|
#
|
||
|
|
# With a specific locale:
|
||
|
|
# LOCALE=nb-NO maestro test .maestro/screenshots.yaml
|
||
|
|
#
|
||
|
|
# Prerequisites:
|
||
|
|
# - Android emulator (API 31+) or device running
|
||
|
|
# - App installed: ./gradlew installDebug
|
||
|
|
# - Internet connection (needed for map tile caching)
|
||
|
|
# - Install Maestro: curl -Ls https://get.maestro.mobile.dev | bash
|
||
|
|
#
|
||
|
|
# GPS is mocked to Bergen centrum (Torgallmenningen area),
|
||
|
|
# which has several shelters within walking distance.
|
||
|
|
|
||
|
|
appId: no.naiv.tilfluktsrom
|
||
|
|
|
||
|
|
env:
|
||
|
|
LOCALE: "en-US"
|
||
|
|
OUTPUT_DIR: "fastlane/metadata/android"
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# Mock GPS: Bergen centrum (Torgallmenningen)
|
||
|
|
- setLocation:
|
||
|
|
latitude: 60.3913
|
||
|
|
longitude: 5.3221
|
||
|
|
|
||
|
|
# Grant location permission and launch with fresh state
|
||
|
|
- launchApp:
|
||
|
|
appId: no.naiv.tilfluktsrom
|
||
|
|
clearState: true
|
||
|
|
permissions:
|
||
|
|
android.permission.ACCESS_FINE_LOCATION: allow
|
||
|
|
android.permission.ACCESS_COARSE_LOCATION: allow
|
||
|
|
|
||
|
|
# Wait for shelter data to load from bundled asset.
|
||
|
|
- extendedWaitUntil:
|
||
|
|
visible:
|
||
|
|
id: "statusText"
|
||
|
|
timeout: 15000
|
||
|
|
|
||
|
|
# The app shows a map caching prompt on first GPS fix when no cache exists.
|
||
|
|
# Tap "Cache map" and wait for caching to complete (~15s).
|
||
|
|
# This prevents the overlay from re-appearing on subsequent GPS updates.
|
||
|
|
- extendedWaitUntil:
|
||
|
|
visible:
|
||
|
|
id: "loadingOkButton"
|
||
|
|
timeout: 15000
|
||
|
|
|
||
|
|
- tapOn:
|
||
|
|
id: "loadingOkButton"
|
||
|
|
|
||
|
|
# Wait for caching to finish (4 zoom levels x 9 grid points x 300ms ≈ 11s + network)
|
||
|
|
- extendedWaitUntil:
|
||
|
|
notVisible:
|
||
|
|
id: "loadingOverlay"
|
||
|
|
timeout: 30000
|
||
|
|
|
||
|
|
# Let the map settle and shelter list populate after caching
|
||
|
|
- waitForAnimationToEnd
|
||
|
|
- extendedWaitUntil:
|
||
|
|
visible:
|
||
|
|
id: "shelterList"
|
||
|
|
timeout: 10000
|
||
|
|
|
||
|
|
# Screenshot 1: Map view with shelter markers and bottom sheet
|
||
|
|
- takeScreenshot:
|
||
|
|
path: "${OUTPUT_DIR}/${LOCALE}/images/phoneScreenshots/1_map_view"
|
||
|
|
|
||
|
|
# Screenshot 2: Tap the second shelter (Håkonsgaten 5) to show a different selection.
|
||
|
|
# Shelter addresses are locale-independent, so this works in all languages.
|
||
|
|
- tapOn: "Håkonsgaten 5"
|
||
|
|
- waitForAnimationToEnd
|
||
|
|
- takeScreenshot:
|
||
|
|
path: "${OUTPUT_DIR}/${LOCALE}/images/phoneScreenshots/2_shelter_selected"
|
||
|
|
|
||
|
|
# Screenshot 3: Switch to compass view
|
||
|
|
- tapOn:
|
||
|
|
id: "toggleViewFab"
|
||
|
|
- waitForAnimationToEnd
|
||
|
|
- takeScreenshot:
|
||
|
|
path: "${OUTPUT_DIR}/${LOCALE}/images/phoneScreenshots/3_compass_view"
|
||
|
|
|
||
|
|
# Screenshot 4: Switch back to map, open civil defense info dialog
|
||
|
|
- tapOn:
|
||
|
|
id: "toggleViewFab"
|
||
|
|
- waitForAnimationToEnd
|
||
|
|
- tapOn:
|
||
|
|
id: "infoButton"
|
||
|
|
- waitForAnimationToEnd
|
||
|
|
- takeScreenshot:
|
||
|
|
path: "${OUTPUT_DIR}/${LOCALE}/images/phoneScreenshots/4_civil_defense_info"
|