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:
@@ -138,6 +138,17 @@ lettura del riassunto e delle statistiche, etichette di stato, corpo dei comandi
|
||||
messaggi d'errore e la formattazione di numeri, importi e mesi della pagina Dati.
|
||||
**La UI Silica si verifica solo sul dispositivo.**
|
||||
|
||||
C'è poi un controllo di **contratto fra bridge e interfaccia**: confronta le
|
||||
chiavi che i QML leggono con quelle che il bridge restituisce davvero (26 da
|
||||
`/summary`, 15 da `/stats`). Serve il bridge in esecuzione, e nasce dal fatto che
|
||||
la UI qui non si può eseguire: un refuso in una chiave si vedrebbe sul telefono
|
||||
come un "—" perenne, senza niente nel log.
|
||||
|
||||
```sh
|
||||
python3 tests/ui_contract_check.py # bridge su 127.0.0.1:8790
|
||||
python3 tests/ui_contract_check.py http://192.168.3.21:8790
|
||||
```
|
||||
|
||||
## Stato
|
||||
|
||||
- **61/61** verifiche del nucleo, compilazione senza warning
|
||||
@@ -186,6 +197,7 @@ qml/components/InfoRow.qml etichetta a sinistra, valore a destra
|
||||
qml/components/ValueRow.qml titolo e sottotitolo a sinistra, valore grande a destra
|
||||
qml/components/ActionButton.qml pulsante di comando, con conferma opzionale
|
||||
tests/core_test.cpp verifiche del nucleo (headless)
|
||||
tests/ui_contract_check.py chiavi dei QML contro quelle del bridge (bridge attivo)
|
||||
bridge/aira_bridge.py servizio HTTP/1.1 + JSON verso il cloud (gRPC)
|
||||
bridge/setup_creds.py salva le credenziali Aira (file 600)
|
||||
bridge/aira_probe.py sonda di sola lettura: login + stato impianto
|
||||
|
||||
Reference in New Issue
Block a user