diff --git a/server/pruef-chat-anhaenge.mjs b/server/pruef-chat-anhaenge.mjs
index c52bdee7..ca5beb7f 100644
--- a/server/pruef-chat-anhaenge.mjs
+++ b/server/pruef-chat-anhaenge.mjs
@@ -935,10 +935,23 @@ const GIF_B64 = "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
" sie liegt bei den Anhängen");
/* ---- Aus der Kiste nehmen: das Verschickte bleibt ---------------- */
- await dogi.seite.evaluate(() => { window.confirm = () => true; });
+ /* DIE RUECKFRAGE WIRD BEANTWORTET, NICHT UMGANGEN.
+
+ Hier stand `window.confirm = () => true` -- und das war richtig,
+ solange die Kiste einen nativen confirm() benutzte. Am 23.09.2026
+ ist er durch den Hausdialog ersetzt worden; seither klickte die
+ Pruefung den Knopf, die Seite fragte, und niemand antwortete.
+ Ergebnis: zwei rote Zeilen an einer Stelle, an der nichts kaputt
+ war -- genau der Fall, vor dem der Kopf von helfer-nachfrage.mjs
+ seit dem 19.09.2026 warnt. Zum zweiten Mal, an einer neuen Stelle.
+
+ `bestaetige` kennt beide Wege und beantwortet den, der wirklich
+ kommt. Damit prueft diese Zeile ab jetzt auch mit, DASS ueberhaupt
+ gefragt wird: Verschwindet die Rueckfrage eines Tages, laeuft der
+ Helfer in seine Frist und die Zeile wird rot. */
await dogi.seite.click("#gif-auf");
await dogi.seite.waitForTimeout(600);
- await dogi.seite.click(".gif-kachel__weg");
+ await bestaetige(dogi.seite, () => dogi.seite.click(".gif-kachel__weg"));
await dogi.seite.waitForTimeout(1500);
const restKacheln = await dogi.seite.locator(".gif-kachel").count();
ok(restKacheln === 0, `aus der Kiste genommen (${restKacheln} übrig)`);
diff --git a/server/pruef-modi-katalog.mjs b/server/pruef-modi-katalog.mjs
index 5c546526..a8537794 100644
--- a/server/pruef-modi-katalog.mjs
+++ b/server/pruef-modi-katalog.mjs
@@ -761,19 +761,35 @@ console.log("");
.map((z) => z.textContent.trim()).find((t) => t.includes("gehen an")) || "");
ok(nachWahl.includes("Marina"), "nach dem Klick steht es da: " + nachWahl);
- const vorher = await seite.evaluate(() => document.querySelectorAll(".karte").length);
+ /* GEZAEHLT WERDEN AUFGABEN, NICHT KARTEN.
+ Seit dem 23.09.2026 fasst das Brett gleiche Aufgaben zu EINER
+ Karte zusammen ("0 von 8"). Eine neue Aufgabe erhoeht die
+ Kartenzahl also nur dann, wenn es noch keine gleichnamige gibt --
+ sonst wandert sie in eine bestehende Karte hinein. Genau das
+ war die Absicht des Umbaus; eine Pruefung, die trotzdem Karten
+ zaehlt, misst ab da die alte Anordnung und nicht die Sache.
+ Jede Karte weist ihre Aufgaben aus: data-id (eine) oder
+ data-ids (mehrere). */
+ const zaehleAufgaben = () => [...document.querySelectorAll(".karte")]
+ .reduce((n, k) => n + (k.dataset.ids || k.dataset.id || "")
+ .split(",").filter(Boolean).length, 0);
+ const vorher = await seite.evaluate(zaehleAufgaben);
await seite.evaluate(() => {
[...document.querySelectorAll(".vorlagenbrett__karte")][0]
?.querySelector("button")?.click();
});
await seite.waitForTimeout(1800);
const danach = await seite.evaluate(() => ({
+ aufgaben: [...document.querySelectorAll(".karte")]
+ .reduce((n, k) => n + (k.dataset.ids || k.dataset.id || "")
+ .split(",").filter(Boolean).length, 0),
karten: document.querySelectorAll(".karte").length,
fuerMarina: [...document.querySelectorAll(".karte")]
.filter((k) => k.textContent.includes("Marina")).length,
}));
- ok(danach.karten === vorher + 1,
- "die Aufgabe liegt auf dem Brett (" + vorher + " -> " + danach.karten + ")");
+ ok(danach.aufgaben === vorher + 1,
+ "die Aufgabe liegt auf dem Brett (" + vorher + " -> " + danach.aufgaben
+ + " Aufgaben in " + danach.karten + " Karten)");
ok(danach.fuerMarina > 0, "und zwar bei Marina (" + danach.fuerMarina + ")");
/* ==== DIE BEWERBUNG AM BILDSCHIRM ENTSCHEIDEN (23.09.2026) ======
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 9e6fa05d..3e309773 100644
--- a/workspace/anruf-probe.html
+++ b/workspace/anruf-probe.html
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
-
-
+
+
-
+