Add Pico dashboard view model

This commit is contained in:
2026-06-03 02:45:26 -06:00
parent f3965e017e
commit f5b6ec64cf
2 changed files with 115 additions and 0 deletions
+56
View File
@@ -426,3 +426,59 @@ def test_communication_service_auto_selects_http_fallback_when_uart_down():
assert service.auto_select_transport() is True
assert service.use_http_fallback is True
def test_dashboard_view_model_formats_dashboard_summary():
from ui.dashboard_view_model import DashboardViewModel
state = AppState()
state.update_from_status({
"battery": {
"soc": 82,
"voltage": 13.2,
"current": -6.4,
"runtime_hours": 12.0,
},
"temps": {
"fridge_zone_1": 34.5,
"fridge_zone_2": 36.0,
},
"relays": {
"starlink": False,
"fridge": True,
},
"network": {
"uart_connected": True,
},
})
vm = DashboardViewModel(state, alarms=[]).as_dict()
assert vm["top_bar"]["soc"] == "82%"
assert vm["top_bar"]["comms"] == "UART OK"
assert vm["top_bar"]["alarms"] == 0
assert vm["battery"]["voltage"] == "13.2V"
assert vm["battery"]["current"] == "-6.4A"
assert vm["battery"]["runtime"] == "12.0 hr"
assert vm["fridge"]["zone_1"] == "34.5°F"
assert vm["fridge"]["zone_2"] == "36.0°F"
assert vm["power"]["starlink"] == "OFF"
assert vm["power"]["fridge"] == "ON"
def test_dashboard_view_model_handles_missing_values():
from ui.dashboard_view_model import DashboardViewModel
state = AppState()
vm = DashboardViewModel(state, alarms=["communication_lost"]).as_dict()
assert vm["top_bar"]["soc"] == "--"
assert vm["top_bar"]["comms"] == "UART LOST"
assert vm["top_bar"]["alarms"] == 1
assert vm["battery"]["voltage"] == "--"
assert vm["fridge"]["zone_1"] == "--"