WellNuo/.maestro/08-subscribe.yaml
Sergei b5ab28aa3e Add bulk sensor operations API
Implemented comprehensive bulk operations for BLE sensor management to improve
efficiency when working with multiple sensors simultaneously.

Features Added:
- bulkDisconnect: Disconnect multiple sensors at once
- bulkReboot: Reboot multiple sensors sequentially
- bulkSetWiFi: Configure WiFi for multiple sensors with progress tracking

Implementation Details:
- Added BulkOperationResult and BulkWiFiResult types to track operation outcomes
- Implemented bulk operations in both RealBLEManager and MockBLEManager
- Exposed bulk operations through BLEContext for easy UI integration
- Sequential processing ensures reliable operation completion
- Progress callbacks for real-time UI updates during bulk operations

Testing:
- Added comprehensive test suite with 14 test cases
- Tests cover success scenarios, error handling, and edge cases
- All tests passing with appropriate timeout configurations
- Verified both individual and sequential bulk operations

Technical Notes:
- Bulk operations maintain device connection state consistency
- Error handling allows graceful continuation despite individual failures
- MockBLEManager includes realistic delays for testing
- Integration with existing BLE service architecture preserved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 16:40:36 -08:00

75 lines
1.7 KiB
YAML

appId: com.wellnuo.app
---
# WellNuo Subscribe - Pay for subscription via Stripe
# Assumes we're on the Subscription screen with "No Active Subscription"
# Should be on Subscription screen
- assertVisible:
text: ".*Subscription.*"
optional: true
- takeScreenshot: "23-subscription-screen"
# Check that we see "No Active Subscription"
- assertVisible:
text: ".*No Active Subscription.*"
optional: true
# Tap Subscribe button
- tapOn:
text: "Subscribe"
# Wait for Stripe Payment Sheet to appear
# Payment sheet shows card input fields
- extendedWaitUntil:
visible: ".*Card.*|.*Pay.*|.*Payment.*"
timeout: 10000
- takeScreenshot: "24-stripe-payment-sheet"
# Stripe Payment Sheet - enter test card details
# Card number field - tap and enter test card
- tapOn:
text: ".*Card number.*|.*Card information.*"
optional: true
# Input test card number (Stripe test card)
- inputText: "4242424242424242"
# Input expiry date (MM/YY)
- inputText: "1229"
# Input CVC
- inputText: "123"
# Input ZIP/Postal code (for US)
- inputText: "12345"
- takeScreenshot: "25-card-entered"
# Hide keyboard
- hideKeyboard
# Tap Pay button (may show as "Pay $49.00" or "Subscribe")
- tapOn:
text: ".*Pay.*|.*Subscribe.*|.*Confirm.*"
# Wait for payment processing and success
- extendedWaitUntil:
visible: ".*Subscription Active.*|.*Active Subscription.*|.*success.*|.*Continue.*"
timeout: 30000
- takeScreenshot: "26-subscription-success"
# If success modal appears, tap Continue
- tapOn:
text: "Continue"
optional: true
# Verify we're back on subscription screen with active status
- extendedWaitUntil:
visible: ".*Active Subscription.*|.*Renews.*"
timeout: 10000
- takeScreenshot: "27-subscription-active"