Die Zentrale bekommt die echten Marken -- und drei rote Pruefungen waren keine
Die drei Befunde in pruef-start-ansicht kamen NICHT vom Licht. Sie hingen
alle an einem boundingBox(), das einmal am Anfang ohne Vorrollen gemessen
wurde. Der Umbau zur Zentrale hatte die Begruessungskachel von 244 auf
404 px wachsen lassen, die zweite Kachel rutschte von y=971 auf y=1131,
ihre Mitte lag bei 1207 -- ausserhalb eines 1200 px hohen Fensters. Dorthin
faehrt kein Zeiger, also entstand kein Licht.
Verraten hat es die Mischung aus gruen und rot: "links" (30 % der Hoehe)
bestand, "rechts" (60 %) nicht. Eine Kachel, die nur zur Haelfte getroffen
wird, ist nicht kaputt -- sie haengt halb aus dem Bild.
Beides ist jetzt behoben, nicht nur eines:
* Die Pruefung holt die Kachel ueber scrollIntoView({block:"center"})
ins Bild und misst DANACH, vor jeder Benutzung. Passt sie trotzdem
nicht ins Fenster, ist das ein harter Fehler statt einer stillen
Fehlmessung.
* Die Kachel selbst faellt von 404 auf 344 px. Groesster Posten war die
Anrede-Pille mit 88 px: In ihr steckt <h1 class="titel">, und
.willkommen .titel ist die grosse Seitenueberschrift -- es standen
also zwei Ueberschriften in Titelgroesse uebereinander. Der Rang von
#gruss aendert sich nicht, nur die Groesse.
Nebenbefund, den die Reparatur mit aufgedeckt hat: Die Randmessung stand
auf "nah 51 gegen fern 0". Diese 0 war kein Messwert, sondern der
Bildpunkt ausserhalb des Fensters. Jetzt "nah 43 gegen fern 7" -- dieselbe
Pruefung misst zum ersten Mal wirklich.
DIE MARKEN. marke-husky.webp war nie freigestellt (0,3 % durchsichtig,
alle vier Ecken Alpha 255) -- als Maske ergab das einen Kasten mit einem
Husky darin. Ersetzt durch das echte Original, damit repariert sich die
Kopfleiste ohne eine einzige geaenderte CSS-Zeile mit.
In der Mitte des Rings steht jetzt Spicy Media, nicht der Husky: Der Ring
zeigt DAS TEAM, ein Segment je Person. Der DogFather-Kopf in seiner Mitte
haette Filipe bildlich ins Zentrum seines eigenen Teams gesetzt.
Und davon nur die Chili: Das volle Siegel war bei 44 px unlesbarer Matsch.
Beim ersten Ausschneiden meldete das Werkzeug "60,8 % deckend, Ecken
0/0/0/0" -- klang tadellos und war ein schwarzes RECHTECK mit Chili darin.
Die Flutfuellung laeuft von aussen und kommt nie hinter den weissen Ring.
Gefunden hat das kein Kennwert, sondern das Hinsehen.
Gemessen: pruef-start-ansicht EXIT=0 (137 -> 140 Pruefungen, die drei
roten sind gruen, keine ist verschwunden), pruef-css-klassen EXIT=0
(472 Groessen), pruef-handy EXIT=0.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -434,7 +434,49 @@ console.log("\n=== Das Licht folgt dem Zeiger");
|
||||
const kontext = await browser.newContext({ viewport: { width: 1440, height: 1200 } });
|
||||
const seite = await anmelden(kontext, "admin", "CODE-DOGI-0001");
|
||||
const kachel = seite.locator(".kachel").nth(1);
|
||||
const kasten = await kachel.boundingBox();
|
||||
|
||||
/* ERST INS BILD ROLLEN, DANN MESSEN -- und zwar VOR JEDER Benutzung.
|
||||
|
||||
Hier stand `const kasten = await kachel.boundingBox()` ein einziges
|
||||
Mal, ganz am Anfang, ohne vorher zu rollen. Am 08.09.2026 hat das
|
||||
drei Pruefungen dieses Blocks umgeworfen, ohne dass am Licht
|
||||
irgendetwas kaputt war: Die Begruessungskachel wuchs beim Umbau zur
|
||||
Zentrale von 244 auf 404 px, die zweite Kachel rutschte damit von
|
||||
y=971 auf y=1131, und ihre Mitte lag bei 1207 -- ausserhalb eines
|
||||
1200 px hohen Fensters. Dorthin kann kein Zeiger fahren, also
|
||||
entstand kein Licht.
|
||||
|
||||
Verraten hat es die MISCHUNG aus gruen und rot: "links" (30 % der
|
||||
Hoehe) bestand, "rechts" (60 %) nicht. Eine Kachel, die nur zur
|
||||
Haelfte getroffen wird, ist nicht kaputt -- sie haengt halb aus dem
|
||||
Bild. Genau dieser Fehler steht zwanzig Zeilen weiter unten schon
|
||||
einmal beschrieben, fuer den 07.09.2026. Dort wurde er an der
|
||||
einzelnen Stelle geflickt, hier nicht.
|
||||
|
||||
Deshalb jetzt nicht noch einmal eine feste Annahme, sondern eine
|
||||
Funktion: Sie holt die Kachel MITTIG ins Bild und misst danach.
|
||||
`block: "center"` statt `scrollIntoViewIfNeeded()` mit Absicht --
|
||||
letzteres rollt nur so weit, dass die Kante gerade eben anliegt,
|
||||
und dann liegt der 60-%-Punkt wieder am Rand. Wer die Kachel spaeter
|
||||
noch hoeher macht, merkt davon nichts mehr. */
|
||||
const kachelHolen = async () => {
|
||||
await kachel.evaluate((k) => k.scrollIntoView({ block: "center", behavior: "instant" }));
|
||||
await seite.waitForTimeout(150);
|
||||
const k = await kachel.boundingBox();
|
||||
/* Die Anzahl gehoert in die Bedingung, nicht in den Meldetext: Eine
|
||||
Kachel, die trotz Rollen nicht ganz ins Fenster passt, wuerde die
|
||||
naechsten Messungen still verfaelschen. Dann lieber hier lautstark
|
||||
scheitern als drei Zeilen weiter unten raetselhaft. */
|
||||
const fenster = await seite.evaluate(() => window.innerHeight);
|
||||
if (k.y < 0 || k.y + k.height > fenster) {
|
||||
throw new Error(`Die Kachel passt auch nach dem Rollen nicht ins Fenster `
|
||||
+ `(y=${Math.round(k.y)}, Hoehe=${Math.round(k.height)}, Fenster=${fenster}). `
|
||||
+ `Ist sie groesser geworden?`);
|
||||
}
|
||||
return k;
|
||||
};
|
||||
|
||||
const kasten = await kachelHolen();
|
||||
|
||||
const ruhe = await kachel.evaluate((k) => k.style.getPropertyValue("--mx") || "(Ruhelage)");
|
||||
|
||||
@@ -491,8 +533,14 @@ console.log("\n=== Das Licht folgt dem Zeiger");
|
||||
const anzahlAn = () => seite.evaluate(() =>
|
||||
document.querySelectorAll('[data-licht="an"]').length);
|
||||
|
||||
/* 1. Ueber die Luecke zwischen zwei Kacheln hinaus. */
|
||||
const k1 = await seite.locator(".kachel").nth(1).boundingBox();
|
||||
/* 1. Ueber die Luecke zwischen zwei Kacheln hinaus.
|
||||
|
||||
Auch hier ueber `kachelHolen()` statt ueber ein blankes
|
||||
`boundingBox()`: Die Mitte dieser Kachel lag am 08.09.2026
|
||||
ausserhalb des Fensters, der Zeiger kam nie an, und die Pruefung
|
||||
meldete "leuchtet genau eine Kachel (0)" -- als waere das Licht
|
||||
kaputt. Es war nur niemand da, der es haette ausloesen koennen. */
|
||||
const k1 = await kachelHolen();
|
||||
await seite.mouse.move(k1.x + k1.width / 2, k1.y + k1.height / 2);
|
||||
await seite.waitForTimeout(300);
|
||||
ok(await anzahlAn() === 1, `beim Ueberfahren leuchtet genau eine Kachel (${await anzahlAn()})`);
|
||||
@@ -719,11 +767,19 @@ console.log("\n=== Das Licht folgt dem Zeiger");
|
||||
}
|
||||
ok(ruhe === "(Ruhelage)", `ruhend keine eigene Position gesetzt (${ruhe})`);
|
||||
|
||||
await seite.mouse.move(kasten.x + kasten.width * 0.2, kasten.y + kasten.height * 0.3);
|
||||
/* NEU GEMESSEN, nicht der Kasten von oben. Der Block darueber endet
|
||||
mit `window.scrollTo({ top: 0 })` -- ab dieser Zeile steht die Seite
|
||||
also wieder ganz oben, und jede Koordinate von vorhin zeigt um die
|
||||
gerollte Strecke daneben. Genau daran ist "rechts" gescheitert. */
|
||||
const kastenJetzt = await kachelHolen();
|
||||
|
||||
await seite.mouse.move(kastenJetzt.x + kastenJetzt.width * 0.2,
|
||||
kastenJetzt.y + kastenJetzt.height * 0.3);
|
||||
await seite.waitForTimeout(250);
|
||||
const links = await kachel.evaluate((k) => k.style.getPropertyValue("--mx"));
|
||||
|
||||
await seite.mouse.move(kasten.x + kasten.width * 0.85, kasten.y + kasten.height * 0.6);
|
||||
await seite.mouse.move(kastenJetzt.x + kastenJetzt.width * 0.85,
|
||||
kastenJetzt.y + kastenJetzt.height * 0.6);
|
||||
await seite.waitForTimeout(250);
|
||||
const rechts = await kachel.evaluate((k) => k.style.getPropertyValue("--mx"));
|
||||
|
||||
@@ -734,7 +790,7 @@ console.log("\n=== Das Licht folgt dem Zeiger");
|
||||
/* Beim Verlassen zurück in die Ruhelage. Ohne das blieben die Kacheln
|
||||
nach einer Weile alle unterschiedlich beleuchtet stehen, ohne dass
|
||||
jemand wüsste, warum. */
|
||||
await seite.mouse.move(kasten.x - 250, kasten.y - 250);
|
||||
await seite.mouse.move(kastenJetzt.x - 250, kastenJetzt.y - 250);
|
||||
await seite.waitForTimeout(250);
|
||||
const danach = await kachel.evaluate((k) => k.style.getPropertyValue("--mx") || "(Ruhelage)");
|
||||
ok(danach === "(Ruhelage)", `nach dem Verlassen wieder in Ruhe (${danach})`);
|
||||
|
||||
Reference in New Issue
Block a user