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>
53 lines
1.2 KiB
YAML
53 lines
1.2 KiB
YAML
appId: com.wellnuo.app
|
|
---
|
|
# WellNuo Device Activation (Demo Mode)
|
|
# Screen title: "Connect Sensors"
|
|
# Has "Use demo code" link that auto-fills DEMO-1234-5678
|
|
|
|
# Should be on Connect Sensors screen
|
|
- assertVisible:
|
|
text: "Connect Sensors"
|
|
optional: true
|
|
|
|
- takeScreenshot: "14-activation-screen"
|
|
|
|
# Tap "Use demo code" link
|
|
# This auto-fills the activation code field with "DEMO-1234-5678"
|
|
- tapOn:
|
|
text: "Use demo code"
|
|
optional: true
|
|
|
|
# Wait for code to be filled
|
|
- extendedWaitUntil:
|
|
visible: "DEMO-1234-5678"
|
|
timeout: 3000
|
|
|
|
- takeScreenshot: "15-demo-code-filled"
|
|
|
|
# Tap Activate button
|
|
- tapOn:
|
|
text: "Activate"
|
|
optional: true
|
|
|
|
# Wait for success screen "Sensors Connected!" (with exclamation mark)
|
|
- extendedWaitUntil:
|
|
visible: ".*Sensors Connected.*"
|
|
timeout: 15000
|
|
|
|
- takeScreenshot: "16-sensors-connected"
|
|
|
|
# Tap "Go to Dashboard" button
|
|
- tapOn:
|
|
text: "Go to Dashboard"
|
|
optional: true
|
|
|
|
# App navigates to Subscription screen (expected behavior)
|
|
# Wait for Subscription screen to appear
|
|
- extendedWaitUntil:
|
|
visible: ".*Subscription.*|.*No Active Subscription.*|.*Subscribe.*"
|
|
timeout: 15000
|
|
|
|
- takeScreenshot: "17-subscription-screen"
|
|
|
|
# Note: We stay on Subscription screen for next test (08-subscribe.yaml)
|