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() } })