mirror of
https://github.com/Jellify-Music/App.git
synced 2026-04-23 11:29:09 -05:00
05cf340e8f
* feat: Add new Maestro tests for album, playlist, artist, and favorites, and enhance existing tests with additional screenshots and refined playback flows. * feat: Enhance Maestro CI/CD with improved caching, updated Maestro version, and refined emulator configurations for better performance and artifact collection. * feat: Run Maestro Android tests using a single orchestrated flow file and collect project screenshots. * fix: Add extended wait conditions to login test to improve stability and prevent flakiness. * feat: Add test IDs to login, authentication, and library selection screens and update Maestro tests to use them. * test: make sign out confirmation assertion optional * feat: Improve login flow robustness by delegating app launch to the login test, increasing wait times, and adding more optional dialog dismissals. * feat: Add APK caching to Maestro test workflow and conditionally run build steps. * feat: make sign-out and cancellation steps in test more robust with optional taps and back key presses, and update login page assertion. * test: remove optional flag from `pressKey: back` action in settings test. --------- Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com> Co-authored-by: Ritesh Shukla <riteshshukla2381@gmail.com>
227 lines
4.9 KiB
YAML
227 lines
4.9 KiB
YAML
appId: com.cosmonautical.jellify
|
|
---
|
|
# Quick Actions Swipe Test
|
|
# This test validates the quick action menu that appears when swiping on track rows
|
|
# The test works with any swipe action configuration
|
|
|
|
# Start from Home tab
|
|
- tapOn:
|
|
id: "home-tab-button"
|
|
|
|
# Wait for content to load
|
|
- assertVisible: "Home"
|
|
|
|
# Try to navigate to Recently Played, but this may not exist for new users
|
|
- tapOn:
|
|
text: "Play it again"
|
|
optional: true
|
|
|
|
# If Recently Played exists, wait for it
|
|
- assertVisible:
|
|
text: "Recently Played"
|
|
optional: true
|
|
|
|
# Wait for tracks to load - make this optional since content may not exist
|
|
- extendedWaitUntil:
|
|
visible:
|
|
id: "track-item-0"
|
|
timeout: 5000
|
|
optional: true
|
|
|
|
# If no recently played, fall back to library tracks
|
|
- tapOn:
|
|
id: "library-tab-button"
|
|
optional: true
|
|
|
|
- tapOn:
|
|
text: "Tracks"
|
|
optional: true
|
|
|
|
- extendedWaitUntil:
|
|
visible:
|
|
id: "track-item-0"
|
|
timeout: 5000
|
|
optional: true
|
|
|
|
|
|
# Test Right Swipe (Left Quick Actions)
|
|
# Swipe right on a track to reveal left-side quick actions
|
|
# Using a slower, more deliberate swipe gesture
|
|
- swipe:
|
|
start: 15%, 30%
|
|
end: 90%, 30%
|
|
duration: 300
|
|
|
|
# Wait for animation
|
|
- waitForAnimationToEnd
|
|
|
|
# Assert that quick action buttons are visible after swipe
|
|
# The exact buttons depend on user settings
|
|
# With 1 action configured: immediate action (no buttons)
|
|
# With 2+ actions: quick action menu appears
|
|
- assertVisible:
|
|
id: "quick-action-left-0"
|
|
optional: true
|
|
|
|
# If multiple left actions configured, check for additional buttons
|
|
- assertVisible:
|
|
id: "quick-action-left-1"
|
|
optional: true
|
|
|
|
- assertVisible:
|
|
id: "quick-action-left-2"
|
|
optional: true
|
|
|
|
# If quick actions appeared (multi-action config), tap the first one
|
|
- tapOn:
|
|
id: "quick-action-left-0"
|
|
optional: true
|
|
|
|
# Wait a moment for the action to complete and menu to close
|
|
- waitForAnimationToEnd
|
|
|
|
# Test Left Swipe (Right Quick Actions)
|
|
# Scroll down a bit to get a fresh track
|
|
- scroll
|
|
|
|
# Swipe left on a track to reveal right-side quick actions
|
|
# Using a slower, more deliberate swipe gesture
|
|
- swipe:
|
|
start: 80%, 40%
|
|
end: 25%, 40%
|
|
duration: 300
|
|
|
|
# Wait for animation
|
|
- waitForAnimationToEnd
|
|
|
|
# Assert that right quick action buttons are visible (if multi-action config)
|
|
- assertVisible:
|
|
id: "quick-action-right-0"
|
|
optional: true
|
|
|
|
# If multiple actions are configured, verify second and third buttons
|
|
- assertVisible:
|
|
id: "quick-action-right-1"
|
|
optional: true
|
|
|
|
- assertVisible:
|
|
id: "quick-action-right-2"
|
|
optional: true
|
|
|
|
# Tap the first right quick action if it appeared
|
|
- tapOn:
|
|
id: "quick-action-right-0"
|
|
optional: true
|
|
|
|
# Wait for action to complete
|
|
- waitForAnimationToEnd
|
|
|
|
# Test menu closes when tapping elsewhere
|
|
# Swipe to open menu again
|
|
# Start further from edge to avoid Android back gesture
|
|
- swipe:
|
|
start: 80%, 45%
|
|
end: 25%, 45%
|
|
duration: 300
|
|
|
|
# Wait for menu to open
|
|
|
|
# Check if quick action menu appeared (multi-action config)
|
|
- assertVisible:
|
|
id: "quick-action-right-0"
|
|
optional: true
|
|
|
|
# Tap on the track content area to close the menu (if it opened)
|
|
- tapOn:
|
|
point: 50%, 45%
|
|
|
|
# Wait for menu to close
|
|
|
|
# Verify the menu closed (only relevant if it was open)
|
|
- assertNotVisible:
|
|
id: "quick-action-right-0"
|
|
optional: true
|
|
|
|
# Navigate to Library to test with different content
|
|
- tapOn:
|
|
id: "library-tab-button"
|
|
|
|
# Test swipe actions in Library tab
|
|
- tapOn: "Tracks"
|
|
|
|
# Wait for tracks to load
|
|
- assertVisible: "Tracks"
|
|
|
|
# Scroll to ensure we're not at the top
|
|
- scroll
|
|
|
|
# Test swipe on library tracks
|
|
# Using a slower, more deliberate swipe gesture
|
|
# Start further from edge to avoid gesture conflicts
|
|
- swipe:
|
|
start: 15%, 35%
|
|
end: 70%, 35%
|
|
duration: 300
|
|
|
|
# Wait for animation
|
|
- waitForAnimationToEnd
|
|
|
|
# Verify quick actions appear in Library context too (if multi-action config)
|
|
- assertVisible:
|
|
id: "quick-action-left-0"
|
|
optional: true
|
|
|
|
# Close the menu by tapping (if it opened)
|
|
- tapOn:
|
|
point: 50%, 35%
|
|
|
|
# Wait for menu to close
|
|
- waitForAnimationToEnd
|
|
|
|
# Test quick actions in Search tab
|
|
- tapOn:
|
|
id: "search-tab-button"
|
|
|
|
# Wait for search screen
|
|
- assertVisible: "Search"
|
|
|
|
# Type a search query
|
|
- tapOn:
|
|
text: "Search"
|
|
|
|
- inputText: "music"
|
|
|
|
- hideKeyboard
|
|
|
|
# Wait for search results
|
|
- waitForAnimationToEnd
|
|
|
|
# Scroll down to see more results
|
|
- scroll
|
|
|
|
# Test swipe actions on search results (tracks only have swipe actions)
|
|
# Look for a track in results and swipe
|
|
# Using a slower, more deliberate swipe gesture
|
|
# Start further from edge to avoid Android back gesture
|
|
- swipe:
|
|
start: 80%, 45%
|
|
end: 25%, 45%
|
|
duration: 300
|
|
|
|
# Wait for animation
|
|
- waitForAnimationToEnd
|
|
|
|
# Verify quick actions work in search context
|
|
- assertVisible:
|
|
id: "quick-action-right-0"
|
|
optional: true
|
|
|
|
# If actions appeared, close them
|
|
- tapOn:
|
|
point: 50%, 40%
|
|
optional: true
|
|
|
|
# Return to home
|
|
- tapOn:
|
|
id: "home-tab-button"
|