From 3cbcdeeca37aef5d4098f8f223d4aac5ebbb1fd9 Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Sat, 24 Oct 2026 08:56:24 +0200 Subject: [PATCH] Test : le bloc storage se lit aussi par GetLoadTelemetry (lot e1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La journée de la démo relit la télémétrie par la frontière RPC pendant le blocage : le bloc passe la validation du schéma déclaré (o:storage), et le Get rend ce qui a été publié. Co-Authored-By: Claude Opus 5.5 --- tests/auto/simulation/simulation.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/simulation/simulation.cpp b/tests/auto/simulation/simulation.cpp index 59a99dd..a4ff877 100644 --- a/tests/auto/simulation/simulation.cpp +++ b/tests/auto/simulation/simulation.cpp @@ -10860,6 +10860,14 @@ void Simulation::testOffPeakDemoDay() QCOMPARE(bat.value("observed").toMap().value("enableDischarging").toBool(), true); QCOMPARE(bat.value("observed").toMap().value("dischargingRate").toDouble(), 0.0); QCOMPARE(s.ecrites->size(), 2); // rien de réécrit une minute après la pose + // PAR LA FRONTIÈRE RPC, pas par l'accesseur : le bloc passe la validation du schéma déclaré + // (`o:storage`), et le Get rend ce qui a été publié. + const QVariantMap rpc = injectAndWait("NymeaEnergy.GetLoadTelemetry").toMap().value("params").toMap(); + QCOMPARE(rpc.value("storage").toMap().value("dischargeBlocked").toBool(), true); + QCOMPARE(rpc.value("storage").toMap().value("decision").toMap().value("code").toString(), + QString(DecisionCode::StorageDischargeBlocked)); + QCOMPARE(rpc.value("storage").toMap().value("batteries").toList().value(0).toMap() + .value("thingId").toUuid(), s.batterie->id()); const QString texteBat = renderFr(DecisionReason(DecisionCode::StorageDischargeBlocked, stockage(snap).value("decision").toMap().value("params").toMap())); QVERIFY2(texteBat.startsWith(QStringLiteral("Décharge de la batterie bloquée : la voiture charge en heures creuses")),