test(ladestation): Regeluebergang abwarten

This commit is contained in:
dh
2026-10-01 15:56:14 +00:00
parent 3ce9af4244
commit 6cd7bf19f5
+20 -2
View File
@@ -209,10 +209,25 @@ return static function (TestContext $test): void {
'Sollleistung_W' => $leistung, 'Sollleistung_W' => $leistung,
], JSON_THROW_ON_ERROR)); ], JSON_THROW_ON_ERROR));
}; };
$warteAufGeraetebefehl = static function (
int $stationId,
string $urlTeil
) use ($test): string {
$deadline = microtime(true) + 3.0;
do {
$befehl = (string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $stationId));
if (str_contains($befehl, $urlTeil)) {
return $befehl;
}
IPS_Sleep(50);
} while (microtime(true) < $deadline);
return $befehl;
};
$test->runCase('Alle drei Geraetevarianten erkennen Fahrzeug und Phasen', static function ( $test->runCase('Alle drei Geraetevarianten erkennen Fahrzeug und Phasen', static function (
TestContext $test TestContext $test
) use ($definitionen, $stationen): void { ) use ($definitionen, $stationen, $warteAufGeraetebefehl): void {
foreach ($stationen as $name => $stationId) { foreach ($stationen as $name => $stationId) {
IPS_RequestAction($stationId, 'Aktiv', true); IPS_RequestAction($stationId, 'Aktiv', true);
$test->assertSame(true, GetValue($test->objectByIdent('FahrzeugVerbunden', $stationId))); $test->assertSame(true, GetValue($test->objectByIdent('FahrzeugVerbunden', $stationId)));
@@ -222,7 +237,10 @@ return static function (TestContext $test): void {
); );
$test->assertSame(false, GetValue($test->objectByIdent('FahrzeugGeladen', $stationId))); $test->assertSame(false, GetValue($test->objectByIdent('FahrzeugGeladen', $stationId)));
IPS_RequestAction($stationId, 'Solarladen', false); IPS_RequestAction($stationId, 'Solarladen', false);
$befehl = (string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $stationId)); $befehl = $warteAufGeraetebefehl(
$stationId,
$definitionen[$name]['BefehlUrlTeil']
);
$diagnose = json_encode([ $diagnose = json_encode([
'Aktiv' => GetValue($test->objectByIdent('Aktiv', $stationId)), 'Aktiv' => GetValue($test->objectByIdent('Aktiv', $stationId)),
'Ladefreigabe' => GetValue($test->objectByIdent('Ladefreigabe', $stationId)), 'Ladefreigabe' => GetValue($test->objectByIdent('Ladefreigabe', $stationId)),