From 5c3cffbad39566cbc340d1b747cbb7001b8bbc72 Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Sun, 25 Oct 2026 11:28:13 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9lestage=20visible=20:=20le=20test=20de?= =?UTF-8?q?=20la=20borne=20manuelle=20n'a=20plus=20d'horloge=20murale?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le passage en mode manuel ne restitue rien quand la borne est déjà dans l'état de l'usager : il n'arme donc aucun verrou à l'heure réelle. Le scénario peut reprendre une date fixe, et la référence `decisions` se reproduit à l'octet près. Co-Authored-By: Claude Opus 5.5 --- tests/auto/simulation/simulation.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/auto/simulation/simulation.cpp b/tests/auto/simulation/simulation.cpp index a16be05..4cb6008 100644 --- a/tests/auto/simulation/simulation.cpp +++ b/tests/auto/simulation/simulation.cpp @@ -12103,6 +12103,12 @@ void Simulation::testOverloadProtectionOnAManualChargerIsLogged() reglages.endGroup(); } s.borne->setStateValue("pluggedIn", true); + // La borne est DÉJÀ dans l'état manuel : le passage en mode manuel n'a rien à restituer, donc + // n'écrit rien. Sinon le code amont écrirait à l'horloge murale et armerait les verrous de la + // borne sur cet instant — un scénario daté en dur se déroulerait « avant » eux, et la + // protection serait refusée à chaque geste. + s.borne->setStateValue("power", true); + s.borne->setStateValue("maxChargingCurrent", 16); const QVariantMap info = injectAndWait("NymeaEnergy.GetChargingInfos").toMap().value("params").toMap() .value("chargingInfos").toList().first().toMap(); QVariantMap manuel = info; @@ -12112,11 +12118,7 @@ void Simulation::testOverloadProtectionOnAManualChargerIsLogged() QString("EnergyErrorNoError")); QCOMPARE(consigneA(s.borne), 16); - // L'HORLOGE MURALE, et elle seule : le passage en mode manuel restitue les valeurs de - // l'usager avec QDateTime::currentDateTime() (code amont), et arme les verrous de la borne sur - // cet instant. Un temps de test antérieur les tiendrait fermés, et la protection serait - // refusée à chaque geste. On part donc au-delà du verrou d'enclenchement (300 s). - QDateTime a = QDateTime::currentDateTime().addSecs(600); + QDateTime a = utcDateTime(QDate(2026, 6, 8), QTime(10, 0)); QVariantMap snap; const auto cycle = [&](double phaseA) { a = a.addSecs(60);