From ce84fc849ae47588dec89aceba2faf6f37452a66 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 10:30:02 +0000 Subject: [PATCH] =?UTF-8?q?Webshop-Test:=20Reiter-Panels=20abwarten=20(Nod?= =?UTF-8?q?e=2020=20l=C3=A4dt=20import()=20langsamer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- test/shopView.test.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/test/shopView.test.js b/test/shopView.test.js index 59525b5..745f348 100644 --- a/test/shopView.test.js +++ b/test/shopView.test.js @@ -349,6 +349,17 @@ test('ordered ohne Rückkehr: kein „Danke!“; scheitert „Zahlung fortsetzen }, )) +// Wartet, bis ein dynamisch geladenes Reiter-Modul sein Panel gezeichnet hat (Node 20 laedt import() langsamer als Node 24) +async function panelText(fx, root, sel) { + for (let i = 0; i < 100; i += 1) { + const t = fx.text(fx.finde(root, sel)) + if (t !== '') return t + await fx.ruhe() + await new Promise((r) => setTimeout(r, 5)) + } + return fx.text(fx.finde(root, sel)) +} + /* ------------------------------------------------------------------ Reiter --- */ test('Zustand active: fünf Reiter in fester Reihenfolge, Übersicht offen; kein Hinweis-Banner', mitDom(welt1('active', status('active')), undefined, async (fx) => { const root = await oeffne(fx) @@ -357,7 +368,7 @@ test('Zustand active: fünf Reiter in fester Reihenfolge, Übersicht offen; kein assert.deepEqual(knoepfe.map((k) => k.dataset.reiter), ['uebersicht', 'artikel', 'bestellungen', 'einstellungen', 'rechtliches']) assert.deepEqual(knoepfe.map((k) => k.getAttribute('aria-selected')), ['true', 'false', 'false', 'false', 'false']) assert.equal(fx.finde(root, '[role="tablist"]').getAttribute('aria-label'), 'Bereiche des Webshops') - assert.notEqual(fx.text(fx.finde(root, '[role="tabpanel"]')), '', 'die Übersicht zeichnet ihr Panel') + assert.notEqual(await panelText(fx, root, '[role="tabpanel"]'), '', 'die Übersicht zeichnet ihr Panel') assert.equal(fx.finde(root, '[data-hinweis]'), null) assert.deepEqual(REITER.map((r) => r.key), ['uebersicht', 'artikel', 'bestellungen', 'einstellungen', 'rechtliches']) })) @@ -406,7 +417,7 @@ test('Die echten Reiter-Module werden beim Wählen geladen', mitDom(welt1('activ for (const key of ['artikel', 'bestellungen', 'einstellungen', 'rechtliches', 'uebersicht']) { await fx.klick(fx.finde(root, `#sh-tab-${key}`)) await fx.ruhe() - assert.notEqual(fx.text(fx.finde(root, '#sh-panel')), '', `${key} zeichnet sein Panel (Platzhalter oder echter Inhalt)`) + assert.notEqual(await panelText(fx, root, '#sh-panel'), '', `${key} zeichnet sein Panel (Platzhalter oder echter Inhalt)`) } for (const r of REITER) assert.equal(typeof (await r.laden()).render, 'function', `${r.key} exportiert render`) }))