0.7.0: assenza con date, conto alla rovescia del boost, catalogo rifatto
- AwayDialog.qml: popup con inizio e fine (Dialog, ValueButton, DatePickerDialog: componenti e proprieta' verificati nella guida Silica dell'SDK). Il tasto Assenza apre il popup invece di mandare il comando; - conto alla rovescia 30:00 -> 00:00 in Home e in copertina, con i secondi dell'impianto (AiraJson::countdown + timer che si riallinea a ogni lettura); - commandPayload accetta campi extra (start/end); - catalogo: lupdate leggeva solo i C++ e marcava 151 voci QML come obsolete. Ora src e qml espliciti: 197 stringhe, 0 non tradotte; - versione 0.7.0 (spec, main.cpp), PROTOCOL, README/PIANO, post per il forum.
This commit is contained in:
@@ -114,6 +114,26 @@ int main(int argc, char *argv[])
|
||||
AiraJson::commandPayload("hot_water_boost_on", QVariant())).object();
|
||||
check(c2.contains("value") == false, "comando senza parametri: nessun campo value");
|
||||
|
||||
// Il popup dell'assenza manda start ed end: devono arrivare nel corpo, e i
|
||||
// campi vuoti non devono entrarci.
|
||||
const QJsonObject c3 = QJsonDocument::fromJson(AiraJson::commandPayload(
|
||||
"away_mode_on", QVariant(), QVariantMap{
|
||||
{ QStringLiteral("start"), QStringLiteral("2026-11-01") },
|
||||
{ QStringLiteral("end"), QStringLiteral("2026-11-08") },
|
||||
{ QStringLiteral("zone"), QString() } })).object();
|
||||
check(c3.value("start").toString() == "2026-11-01", "campo start nel corpo");
|
||||
check(c3.value("end").toString() == "2026-11-08", "campo end nel corpo");
|
||||
check(c3.contains("value") == false, "assenza con date: nessun campo value");
|
||||
check(c3.contains("zone") == false, "campo vuoto: non entra nel corpo");
|
||||
|
||||
// ---- countdown (conto alla rovescia del boost) ------------------------ //
|
||||
check(AiraJson::countdown(1800) == "30:00", "mezz'ora -> 30:00");
|
||||
check(AiraJson::countdown(65) == "01:05", "65 secondi -> 01:05");
|
||||
check(AiraJson::countdown(59) == "00:59", "59 secondi -> 00:59");
|
||||
check(AiraJson::countdown(0) == "00:00", "zero -> 00:00");
|
||||
check(AiraJson::countdown(-5) == "00:00", "negativo -> 00:00");
|
||||
check(AiraJson::countdown(240 * 60) == "240:00", "quattro ore -> 240:00");
|
||||
|
||||
// ---- errorMessage ----------------------------------------------------- //
|
||||
check(AiraJson::errorMessage(R"({"ok":false,"error":"token mancante o errato"})", 401)
|
||||
== "token mancante o errato", "messaggio d'errore dal corpo");
|
||||
|
||||
Reference in New Issue
Block a user