diff --git a/server/pruef-handy-teamdogi.mjs b/server/pruef-handy-teamdogi.mjs index 7aef5354..6128de12 100644 --- a/server/pruef-handy-teamdogi.mjs +++ b/server/pruef-handy-teamdogi.mjs @@ -599,6 +599,28 @@ const ROLLEN = [ ]; const BREITEN = [[390, 844, "iPhone"], [412, 915, "Android"]]; +/** Meldet sich auf der Team-Adresse an und wartet, bis die Startseite steht. + * + * EINE STELLE, ZWEI AUFRUFER (03.10.2026). Diese sechs Zeilen standen + * in der Schleife unten, und als ich sie fuer eine zweite Messung + * gebraucht habe, habe ich sie abgeschrieben -- und dabei eine + * aeltere Fassung erwischt: ohne `isVisible()` und mit `click()` + * statt `check()`. Ergebnis war ein Zeitablauf nach 30 Sekunden an + * der Altersfrage, die es fuer DogFather gar nicht gibt. Eine halbe + * Stunde fuer eine Abschrift. + * + * Die Altersfrage erscheint nur fuer die Community -- deshalb erst + * fragen, ob sie ueberhaupt sichtbar ist. */ +async function anmeldenAufCrew(seite, rolle, code) { + await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded", timeout: 20000 }); + await seite.click(`.rolle[data-rolle="${rolle}"]`, { timeout: 8000 }); + await seite.fill("#code", code); + const frage = await seite.$("#alter-ok"); + if (frage && await frage.isVisible().catch(() => false)) await frage.check(); + await seite.click("button[type=submit]"); + await seite.waitForURL("**/start.html", { timeout: 20000 }); +} + let fehler = 0, geprueft = 0, elementeGesamt = 0, bedienbarGesamt = 0; const probleme = []; const melde = (t) => console.log(t); @@ -634,14 +656,7 @@ for (const [breite, hoehe, geraet] of BREITEN) { /* ---- Anmelden, wie ein Mensch es tut ---------------------------- */ let drin = false; try { - await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded", timeout: 20000 }); - await seite.click(`.rolle[data-rolle="${rolle}"]`, { timeout: 8000 }); - await seite.fill("#code", code); - /* Die Altersfrage erscheint nur für die Community. */ - const frage = await seite.$("#alter-ok"); - if (frage && await frage.isVisible().catch(() => false)) await frage.check(); - await seite.click("button[type=submit]"); - await seite.waitForURL("**/start.html", { timeout: 20000 }); + await anmeldenAufCrew(seite, rolle, code); drin = true; } catch (f) { /* EINE GESCHEITERTE ANMELDUNG IST DER SCHLIMMSTE BEFUND -- danach @@ -864,9 +879,86 @@ melde("\n --- Gegenprobe (beide Fehler MÜSSEN gefunden werden) ---"); await kontext.close(); } +/* ===================================================================== + DIE "FUER WEN"-REIHE GIBT ES AUF crew. NICHT MEHR (03.10.2026) + + Filipe, mit Bildschirmfoto der Leiste "FUER WEN · Alle 3 2 · + Marina 1 · Diene 0": "brauchen wir nicht auf der aufgaben seite." + + WARUM DAS HIER GEPRUEFT WIRD UND NICHT IM AUFGABENBRETT: Es ist + DIESELBE Reihe in beiden Haeusern, und sie bleibt bei Spicy Media + -- dort filtern Scouts und Manager durch ihre Creator. Die + Gegenprobe steht deshalb schon in pruef-aufgabenbrett ("Mara sieht + Alle, Tili, Luna"), und nur die crew-Seite fehlte. Ohne diese + Zeilen waere die Trennung eine Behauptung: Niemand wuerde merken, + wenn die Reihe auf crew. zurueckkaeme -- oder wenn sie der Agentur + nebenbei mit abhanden kaeme. + + DIE GEGENPROBE STEHT DANEBEN, und sie ist hier das Wichtigste: + "Reihe nicht da" waere auch auf einer leeren oder kaputten Seite + wahr. Deshalb muss die Schwester-Reihe (Alle / Heute faellig / + Ueberfaellig) im selben Atemzug SICHTBAR sein. Erst beides zusammen + heisst "die Seite steht, und genau dieses eine Stueck fehlt". + ===================================================================== */ +{ + const kontext = await browser.newContext({ + viewport: { width: 390, height: 844 }, hasTouch: true, isMobile: true, + ignoreHTTPSErrors: true, + }); + const seite = await kontext.newPage(); + let gemessen = null; + try { + await anmeldenAufCrew(seite, "admin", "CODE-DOGI-0001"); + await seite.goto(BASIS + "/workspace/aufgaben.html", + { waitUntil: "domcontentloaded", timeout: 20000 }); + await seite.waitForTimeout(1200); + gemessen = await seite.evaluate(() => { + const r = document.getElementById("creator-reihe"); + const a = document.getElementById("ausschnitte"); + return { + reiheDa: !!r && r.hidden === false, + knoepfe: document.querySelectorAll(".creator-knopf").length, + schwesterDa: !!a && a.hidden === false, + schwesterKnoepfe: a ? a.querySelectorAll("button").length : 0, + }; + }); + } catch (f) { + melde(` FEHL "Fuer wen"-Reihe: nicht messbar -- ${String(f.message).slice(0, 160)}`); + probleme.push(`"Fuer wen"-Reihe: nicht messbar (${String(f.message).slice(0, 70)})`); + fehler++; + } + if (gemessen) { + geprueft += 3; + const g1 = gemessen.schwesterDa && gemessen.schwesterKnoepfe >= 2; + const g2 = !gemessen.reiheDa; + const g3 = gemessen.knoepfe === 0; + melde(""); + melde(` ${g1 ? "ok " : "FEHL"} die Aufgabenseite steht wirklich ` + + `(${gemessen.schwesterKnoepfe} Knoepfe in der Ausschnitt-Reihe)`); + melde(` ${g2 ? "ok " : "FEHL"} und die "Fuer wen"-Reihe ist weg (sichtbar: ${gemessen.reiheDa})`); + melde(` ${g3 ? "ok " : "FEHL"} auch kein einzelner Knopf davon (${gemessen.knoepfe})`); + if (!g1) { fehler++; probleme.push('"Fuer wen": die Seite stand gar nicht -- die Messung beweist nichts'); } + if (!g2 || !g3) { fehler++; probleme.push('"Fuer wen"-Reihe steht auf crew. wieder da'); } + } + await kontext.close(); +} + await browser.close(); try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } +/* DIE BEFUNDE GEHOEREN UNTER DIE ZAHL (03.10.2026). + + `probleme` wurde seit jeher gefuellt und NIE ausgegeben: Am Ende + stand "1 Befund" und sonst nichts. Wer das liest, weiss, DASS etwas + ist, aber nicht was -- und muss den ganzen Lauf noch einmal + anstossen, um es zu erfahren. Genau das ist mir heute passiert. + Ein Befund ohne Grund ist eine Fundstelle, die man ueberliest. */ +if (probleme.length) { + melde(""); + melde(" --- Befunde im Einzelnen ---"); + for (const t of probleme) melde(` · ${t}`); +} + melde(""); melde(` ${geprueft} Seitenaufrufe, ${elementeGesamt} Elemente, ${bedienbarGesamt} Bedienelemente gemessen`); melde(` ${fehler} Befund${fehler === 1 ? "" : "e"}`); diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index 49cb2438..9523d704 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,8 +16,8 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +