Vier rote Pruefungen -- drei Phantome und ein echtes Gewicht

Weiter durch die rote Liste. Drei der vier Befunde zeigten auf
gesunden Code; die Pruefungen selbst waren seit einem Umbau nicht
nachgezogen worden.

pruef-schritt (2 rot -> 71 gruen statt 47)
  Meldete "1 von 6 Kategorien". Die Karte geht seit dem 01.10.2026
  gefiltert auf ("zugetragen"), Bloecke ohne solche Punkte werden gar
  nicht gezeichnet. Die Pruefung zaehlte danach alle. Schlimmer: Weil
  dann kein Block mehr zugeklappt war, lief der Klick auf einen
  zugeklappten 30 Sekunden in die Frist und riss den Lauf mit -- 24 von
  71 Pruefungen liefen nie. Jetzt wird erst die Vorgabe geprueft (sie
  ist eine Zusage), dann auf "Alle" gestellt.

pruef-glocke (1 rot -> 34 gruen)
  Meldete "auf der Anmeldeseite steht der Knopf". Gemessen landete sie
  auf start.html: Dieselbe Seite war eine Zeile zuvor angemeldet durch
  zwanzig Arbeitsseiten gelaufen, und angemeldet fuehrt /workspace/
  nicht zur Wand. Jetzt eigener Kontext ohne Keks -- und davor die
  Zeile, dass die Wand wirklich erreicht wurde.

pruef-zeichen (1 rot -> 8 gruen)
  Meldete content: "·" als Kodierungstruemmer. Die Bytes sind C2 B7,
  also korrektes UTF-8; der Mittelpunkt ist ein begruendeter Trennpunkt
  (seit 03.10.). Die Regel stammt aus einer Zeit, in der sie selbst
  festhielt: "KEINE einzige benutzt ein Zeichen aus diesem Block."
  Jetzt eine benannte Ausnahme MIT Veraltungsschutz: Jedes Zeichen
  darin muss wirklich vorkommen, sonst wird die Ausnahme rot.

pruef-tempo-workspace (1 rot -> 9 gruen) -- DER ECHTE BEFUND
  uebersicht.html 959 KB, bereich.html?b=live 1094 KB bei einer Grenze
  von 900. Die Pruefung sagt jetzt auch, WORAN es liegt, und die
  Antwort war eindeutig: ZWEI Buehnenbilder auf einer Seite, die eines
  zeigt (281 KB studio + 262 KB portal).

  Ursache: start.css traegt an body.start::before einen Rueckfall
  (studio), und kopf.js setzt `data-buehne` erst, wenn die Seite steht.
  Bis dahin ist der Rueckfall geholt -- auf 43 von 45 Seiten.

  Jetzt steht die Szene fest im <body>, erzeugt aus bereiche.js
  (tools/buehne-festschreiben.mjs, 20 Seiten). bereich.html bedient
  fuenf Bretter und kann das nicht; sie bekommt ein kleines Skript
  gleich hinter <body>, das die Szene aus `?b=` setzt, bevor gezeichnet
  wird. Gemessen: 1094 -> 879 KB, und die Grenze haelt wieder.

  DIE ZUORDNUNG STEHT DAMIT AN ZWEI STELLEN. Das ist nur vertretbar,
  weil sie nicht auseinanderlaufen kann: pruef-buehnen-fest.mjs (neu,
  13 Pruefungen) haelt HTML gegen bereiche.js, prueft die Lage des
  Skripts und dass jede genannte Szene eine Regel hat.

  Dabei gefunden und berichtigt -- zweimal an mir selbst: Der erste
  Entwurf verglich Szenen mit Dateinamen und meldete teamlage.html
  ("eingang") als Fehler; die Szene gibt es, ihre Regel zeigt nur auf
  ein crew-Bild. Und der Lage-Anker suchte `data-buehne`, das Skript
  schreibt `dataset.buehne` -- indexOf gab -1, die Rechnung wurde
  negativ und meldete "-2276 Zeichen dahinter".

Gegenproben gefahren: Szene verschoben -> rot mit Abstand; Ausnahme
verwaist -> rot; erfundene Szene -> erkannt.
Dazu gruen: css-klassen, workspace-seiten, neue-seiten, haus-trennung,
kopfleiste-farbe.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-07 13:05:54 +02:00
co-authored by Claude Opus 5
parent 14fa825848
commit da7508b6ce
52 changed files with 1132 additions and 718 deletions
+35
View File
@@ -383,6 +383,41 @@ melde("=== 8. Im Browser ===");
Geprüft wird nicht, dass es einen Knopf GIBT -- sondern dass er
etwas tut, und dass zugeklappt trotzdem dasteht, was drin ist.
================================================================ */
/* ==== DIE KARTE GEHT SEIT DEM 01.10.2026 GEFILTERT AUF ============
(nachgezogen am 07.10.2026)
entwicklung.js setzt beim Oeffnen `stufenFilter = 'zugetragen'`,
sobald dieser Mensch ueberhaupt etwas zugetragen bekommen hat --
„womit die Karte aufgeht". Bloecke ohne zugetragene Punkte werden
dann gar nicht gezeichnet (`if (!punkte.length) continue`).
DIESE PRUEFUNG WUSSTE DAVON NICHTS und zaehlte danach ALLE
Kategorien. Ergebnis: „1 von 6" -- ein Befund, der auf die Karte
zeigte, obwohl die Karte tat, was sie soll. Und weil danach kein
einziger Block mehr zugeklappt war, lief der Klick auf einen
zugeklappten 30 Sekunden in die Frist und riss den ganzen Lauf mit.
Ein Fehlalarm, der einen zweiten echten Fehler erzeugt.
ZUERST DIE VORGABE PRUEFEN -- sie ist eine Zusage, keine Nebensache
--, dann auf „Alle" stellen. Was die Zeile darunter behauptet („die
Karte zeigt ALLE Bloecke"), gilt genau dort. */
const vorgabe = await seite.evaluate(() => {
const k = document.querySelector('.e-stufen__knopf[aria-pressed="true"]');
return {
gewaehlt: k?.dataset.erwartung ?? null,
wort: k?.querySelector(".e-stufen__name")?.textContent.trim() ?? null,
zugetragen: Number(document.querySelector('.e-stufen__knopf[data-erwartung="zugetragen"] .e-stufen__zahl')?.textContent || 0),
};
});
ok(vorgabe.zugetragen > 0 && vorgabe.gewaehlt === "zugetragen",
`die Karte geht auf „${vorgabe.wort}" auf, weil ${vorgabe.zugetragen} Punkte zugetragen sind`);
await seite.click('.e-stufen__knopf[data-erwartung=""]');
await seite.waitForTimeout(600);
const nachAlle = await seite.evaluate(() =>
document.querySelector('.e-stufen__knopf[aria-pressed="true"]')?.dataset.erwartung);
ok(nachAlle === "", `„Alle" ist danach gewaehlt (${JSON.stringify(nachAlle)})`);
const bloecke = await seite.evaluate(() => {
const b = [...document.querySelectorAll(".e-block")];
return {