Fix System Health ledger rendering

This commit is contained in:
Gabriel Brown
2026-08-18 10:08:12 -04:00
parent 3238623934
commit 8a0a09dbb4
4 changed files with 116 additions and 34 deletions
+29 -11
View File
@@ -120,9 +120,11 @@ ShellRoot {
Health.consumeSnapshot(Quickshell.env("PANAMA_HEALTH_FIXTURE"), 100);
}
Item {
width: 980
height: 820
FloatingWindow {
title: "Panama Health UI Contract"
visible: true
implicitWidth: 980
implicitHeight: 820
SettingsShell {
id: settingsShell
@@ -185,12 +187,19 @@ run ipc show 2>/dev/null | rg -q '^target health-ui-test$' \
checking_state="$(run ipc call health-ui-test state)"
jq -e '
.issueIds == ["desktop.vicinae", "desktop.quickshell", "integration.calendar"]
and .desktopIds == ["desktop.vicinae", "desktop.quickshell"]
and .integrationIds == ["integration.bluebubbles", "integration.calendar"]
and .statusLabels == ["Needs attention", "Action required", "Healthy", "Not set up", "Needs attention", "Healthy"]
.renderedRows == [
{objectName:"health-check-row:issue:desktop.vicinae", id:"desktop.vicinae", section:"issue", statusText:"Needs attention"},
{objectName:"health-check-row:issue:desktop.quickshell", id:"desktop.quickshell", section:"issue", statusText:"Action required"},
{objectName:"health-check-row:issue:integration.calendar", id:"integration.calendar", section:"issue", statusText:"Needs attention"},
{objectName:"health-check-row:quiet:input.pipewire", id:"input.pipewire", section:"quiet", statusText:"Healthy"},
{objectName:"health-check-row:quiet:integration.bluebubbles", id:"integration.bluebubbles", section:"quiet", statusText:"Not set up"},
{objectName:"health-check-row:quiet:panama.caffeine", id:"panama.caffeine", section:"quiet", statusText:"Healthy"}
]
and (.renderedRows | map(.id) | length) == 6
and (.renderedRows | map(.id) | unique | length) == 6
and .emptyQuietGroups == ["desktop-foundation"]
and .summaryHeight == 126
and (.rowHeights | length) == 9
and (.rowHeights | length) == 6
and (.rowHeights | all(. >= 62))
and .checking == true
and .checkingText == "Checking…"
@@ -202,15 +211,24 @@ for _ in $(seq 1 40); do
[[ "$(jq -r .checking <<<"$settled_state")" == "false" ]] && break
sleep 0.1
done
sleep 0.1
settled_state="$(run ipc call health-ui-test state)"
[[ "$(jq -c .rowHeights <<<"$settled_state")" == "$checking_heights" ]] \
|| fail 'row geometry changed after refresh settled'
jq -e '.copyFocusable == true and .refreshFocusable == true and .rowActionFocusable == true' \
>/dev/null <<<"$settled_state" || fail 'keyboard focus does not reach hero and row actions'
jq -e '
(.focusChain | index("health-copy-report-button")) != null
and (.focusChain | index("health-refresh-button")) != null
and (.focusChain | any(startswith("health-row-action:")))
' >/dev/null <<<"$settled_state" || fail "actual focus-chain traversal does not reach hero and row actions: $settled_state"
[[ "$(run ipc call health-ui-test request desktop.quickshell)" == "true" ]] \
|| fail 'restart confirmation fixture could not be requested'
confirmation_state="$(run ipc call health-ui-test state)"
jq -e '.confirmationVisible == true and .confirmationId == "desktop.quickshell"' \
jq -e '
.confirmationVisible == true
and .confirmationId == "desktop.quickshell"
and .activatedRows == ["health-check-row:issue:desktop.quickshell"]
' \
>/dev/null <<<"$confirmation_state" || fail 'Quickshell restart did not open confirmation sheet'
if rg -i 'QQml|ReferenceError|TypeError|binding loop|failed to load component' "$shell_log"; then