From 3c44c426814a7ad25010777df0bdfd8f8ec9b01e Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 12:35:27 +0000 Subject: [PATCH] =?UTF-8?q?Test:=20Szene=20bei=20Stufe=203=20pr=C3=BCft=20?= =?UTF-8?q?Arne=20wirklich=20nach=20seinem=20Status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Test "die Szene zeigt Arne nach seinem Status" prüfte bisher nur die Zahl im Schild und die Abruf-Anzahl. Er prüft jetzt bei Stufe 3 data-hk-arne, hk-arne-weg, die drei hk-kl-ruht, den Marker hk-alarm und hk-steht für arbeitet, leerlauf, fehler und angehalten. Co-Authored-By: Claude Sonnet 5.5 --- tests/unit/botleadList.test.mjs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/unit/botleadList.test.mjs b/tests/unit/botleadList.test.mjs index 639877f..b475527 100644 --- a/tests/unit/botleadList.test.mjs +++ b/tests/unit/botleadList.test.mjs @@ -649,9 +649,26 @@ test('Stufe 3: ?bot= (Einzelansicht) ruft nichts ab, zeigt dieselbe ehrliche Aus test('Stufe 3: die Zahl im Schild kommt weiter aus den Kennzahlen (kpis.botLeads); die Szene zeigt Arne nach seinem Status', async () => { const api = fakeApi() - const ui = await start(api, { stufe: 3, kpis: { botLeads: 0 }, workers: { arne: { status: 'arbeitet', task: '', lastTs: null, connected: true, counters: {} } } }) + const arne = (status) => ({ arne: { status, task: '', lastTs: null, connected: true, counters: {} } }) + const stand = (ui) => ({ + attr: nodes(ui.tree(), (n) => n.props && n.props['data-hk-arne'] !== undefined).map((n) => n.props['data-hk-arne']), + weg: byClass(ui.tree(), 'hk-arne-weg').length, ruht: byClass(ui.tree(), 'hk-kl-ruht').length, + alarm: byClass(ui.tree(), 'hk-alarm').length, steht: byClass(ui.tree(), 'hk-steht').length, + }) + const ui = await start(api, { stufe: 3, kpis: { botLeads: 0 }, workers: arne('arbeitet') }) try { assert.equal(textOf(byClass(ui.tree(), 'hk-kl-zahl')[0]), '0') + // arbeitet: Arnes Ablauf-Schleife läuft, nichts ruht, kein Alarm + assert.deepEqual(stand(ui), { attr: ['arbeitet'], weg: 1, ruht: 0, alarm: 0, steht: 0 }) + // leerlauf: Arne sitzt am Pult, die drei Dinge (Stempel, Rohrpost, Schublade) ruhen + ui.setProps({ workers: arne('leerlauf') }); await settle() + assert.deepEqual(stand(ui), { attr: ['leerlauf'], weg: 0, ruht: 3, alarm: 0, steht: 0 }) + // fehler: roter Marker + ui.setProps({ workers: arne('fehler') }); await settle() + assert.deepEqual(stand(ui), { attr: ['fehler'], weg: 0, ruht: 3, alarm: 1, steht: 0 }) + // Hustler angehalten: die ganze Szene steht still + ui.setProps({ paused: true }); await settle() + assert.equal(stand(ui).steht, 1) assert.equal(api.calls.length, 0) } finally { ui.end() } })