controllo di contratto fra i QML e il bridge (tests/ui_contract_check.py)

Le chiavi lette dalle pagine vengono confrontate con quelle che /summary e
/stats restituiscono davvero: la UI non si puo' eseguire senza il kit Silica,
quindi un refuso resterebbe invisibile fino al primo build sul telefono.
This commit is contained in:
2026-10-10 09:16:38 +02:00
parent a48ec86822
commit 6eea29f99d
3 changed files with 100 additions and 0 deletions
+11
View File
@@ -122,6 +122,16 @@ statistics parsing, mode labels, command payloads, error messages, and the
number/currency/month formatting used by the Data page.
**The Silica UI can only be verified on a device.**
A second check compares the keys the QML reads with the keys the bridge really
returns (26 from `/summary`, 15 from `/stats`). It needs the bridge running, and
it exists because the UI cannot be run here: a typo in a key would show up as a
permanent “—” on the phone, with nothing in the log.
```sh
python3 tests/ui_contract_check.py # bridge on 127.0.0.1:8790
python3 tests/ui_contract_check.py http://192.168.3.21:8790
```
## Status
Verified so far:
@@ -201,6 +211,7 @@ qml/components/InfoRow.qml label on the left, value on the right
qml/components/ValueRow.qml title + subtitle left, big value right
qml/components/ActionButton.qml command button, optional confirmation
tests/core_test.cpp core checks (headless)
tests/ui_contract_check.py QML keys vs bridge keys (bridge must be running)
bridge/ local HTTP bridge -> see bridge/README.md
translations/ harbour-aira-it.ts (English is the source language)
docs/PIANO.md project plan and decisions (Italian)