From 6862bba437e7e03118697607fd5161c5fcd7128e Mon Sep 17 00:00:00 2001 From: Dogfather Date: Wed, 23 Sep 2026 11:06:32 +0200 Subject: [PATCH] pruef-zuteilung stuerzte ab -- an einer Entscheidung vom 22.09. Beim Nachsehen im Umfeld des Vorlagenbretts gefunden: Die Pruefung lief gar nicht mehr durch. Sie wartete dreissig Sekunden auf "#neu-oeffnen" und brach dann ab -- und pruefte damit auch alles danach nicht mehr. Der Knopf ist nicht kaputt, er ist WEG -- und zwar auf Ansage: Filipe, 22.09.2026: "dieser button kann da jetzt doch endlich verschwinden, auf dieser seite sollen ja keine aufgaben mehr verteilt werden." Verteilt wird seither auf der Entwicklungsseite. Die Pruefung ist mit umgezogen und misst dort dasselbe wie vorher: Stehen Leute zur Auswahl, und erscheint die Frage "wie soll das laufen" erst, wenn es wirklich mehrere sind? (4 zur Wahl, vorher verborgen, danach sichtbar.) DAS IST DIE DRITTE SORTE FEHLER aus den Hausregeln -- kein uebersprungener Test und kein gruener, der das Falsche prueft, sondern einer, der seine VORAUSSETZUNG verloren hat. Von aussen sah er aus wie ein Befund am Programm; er war einer an der Pruefung. UND DASS DER KNOPF DORT WEG BLEIBT, WIRD JETZT MITGEPRUEFT. Sonst koennte er stillschweigend zurueckkommen, und Filipes Ansage waere rueckgaengig, ohne dass es jemand merkt. Genau so entstehen die Funktionen, von denen niemand weiss, wann sie wiedergekommen sind. Beim Umbau lief ich selbst in die naechste Stufe desselben Fehlers: Der erste Anlauf mass null Kaestchen und meldete vier rote Zeilen. Das Formular startet zugeklappt, und die Liste wird erst beim Aufklappen gebaut -- gemessen war also eine Seite, die niemand aufgemacht hatte. Steht jetzt als Begruendung daneben. pruef-zuteilung: 75 Pruefungen, 0 Fehler (vorher: Absturz nach 40). Nichts davon ist ausgeliefert -- es aendert sich nur eine Pruefdatei, die der Dienst gar nicht laedt. Co-Authored-By: Claude Opus 5 --- server/pruef-zuteilung.mjs | 70 ++++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 14 deletions(-) diff --git a/server/pruef-zuteilung.mjs b/server/pruef-zuteilung.mjs index 69cb11f7..85293699 100644 --- a/server/pruef-zuteilung.mjs +++ b/server/pruef-zuteilung.mjs @@ -631,21 +631,63 @@ melde("\n=== Am echten Bildschirm ==="); [...document.querySelectorAll(".karte[data-id]")].filter((k) => !k.hidden).length); ok(zurueck === vorher, `und noch einmal zeigt wieder alle (${zurueck})`); - /* DIE MEHRFACHAUSWAHL IM FORMULAR. */ - await pChef.seite.click("#neu-oeffnen"); - await pChef.seite.waitForTimeout(500); - const mehr = await pChef.seite.evaluate(() => { - const k = document.getElementById("feld-mehrere"); - const auf = document.getElementById("mehrere-auf"); - if (!k || k.hidden || !auf) return { da: false }; - auf.click(); - const leute = [...document.querySelectorAll("#mehrere-leute input[type=checkbox]")]; - const artVorher = document.getElementById("mehrere-art").hidden; - leute.slice(0, 2).forEach((x) => { x.checked = true; x.dispatchEvent(new Event("change")); }); - return { da: true, zahl: leute.length, artVorher, - artNachher: document.getElementById("mehrere-art").hidden }; + /* ==== DIE MEHRFACHAUSWAHL -- SIE IST UMGEZOGEN (berichtigt 23.09.2026) + + Hier stand `await seite.click("#neu-oeffnen")` auf der + Aufgabenseite. Dieser Knopf ist fuer DogFather seit dem + 22.09.2026 VERBORGEN, und zwar mit Absicht: + + Filipe: "dieser button kann da jetzt doch endlich + verschwinden, auf dieser seite sollen ja keine aufgaben mehr + verteilt werden." + + Verteilt wird seither auf der Entwicklungsseite. Die Pruefung + ist deshalb seit einem Tag mit einer Zeitueberschreitung + ABGESTUERZT -- 30 Sekunden Warten auf einen Knopf, den es dort + nicht mehr geben soll -- und hat dabei auch alles danach nicht + mehr geprueft. + + DAS IST DIE DRITTE SORTE FEHLER aus den Hausregeln: kein + uebersprungener Test und kein gruener, der das Falsche prueft, + sondern einer, der seine Voraussetzung verloren hat. Er sah aus + wie ein Befund am Programm und war einer an der Pruefung. + + Sie folgt der Faehigkeit jetzt dorthin, wo sie lebt. Gemessen + wird dasselbe wie vorher: Stehen Leute zur Auswahl, und + erscheint die Frage "wie soll das laufen" erst, wenn es + wirklich mehrere sind? + + UND DASS DER KNOPF DORT WEG IST, WIRD MITGEPRUEFT -- sonst + koennte er stillschweigend zurueckkommen, und Filipes Ansage + waere wieder rueckgaengig, ohne dass es jemand merkt. */ + const knopfWeg = await pChef.seite.evaluate(() => { + const k = document.getElementById("neu-oeffnen"); + return !k || k.hidden; }); - ok(mehr.da, "DogFather kann mehrere dazunehmen"); + ok(knopfWeg, + "auf der Aufgabenseite legt DogFather nichts mehr an — so gewollt seit dem 22.09."); + + await pChef.seite.goto(`${SEITE}/workspace/entwicklung.html`, { waitUntil: "networkidle" }); + await pChef.seite.waitForTimeout(1500); + /* ERST DAS FORMULAR AUFMACHEN. Es startet zugeklappt -- die Liste + der Leute wird beim Aufklappen gebaut (fuerLeuteBauen laeuft nur, + wenn das Formular offen ist). Ohne diesen Klick maesse die + Pruefung null Kaestchen und meldete einen Fehler, den es nicht + gibt. Genau so ist der erste Anlauf gelaufen. */ + await pChef.seite.click("#verteilen-knopf"); + await pChef.seite.waitForTimeout(900); + const mehr = await pChef.seite.evaluate(() => { + const leute = [...document.querySelectorAll('#e-fuer-leute input[type="checkbox"]')]; + const art = document.getElementById("e-art"); + if (!leute.length || !art) return { da: false, zahl: leute.length }; + const artVorher = art.hidden; + leute.slice(0, 2).forEach((x) => { + x.checked = true; + x.dispatchEvent(new Event("change", { bubbles: true })); + }); + return { da: true, zahl: leute.length, artVorher, artNachher: art.hidden }; + }); + ok(mehr.da, `DogFather kann mehrere dazunehmen (${mehr.zahl} zur Wahl)`); ok(mehr.zahl >= 2, `es stehen Leute zur Auswahl (${mehr.zahl})`); ok(mehr.artVorher === true, "die Frage 'wie soll das laufen' steht erst nicht da");