Zehn Messungen bekommen einen Finger -- und eine Zeitbombe faellt auf
Die Grundlinie der Fingerwache sinkt von 17 auf 6.
WAS UMGESTELLT WURDE
pruef-alter, pruef-countdown, pruef-gespraech, pruef-treffchat,
pruef-modi-verborgen, pruef-nachwuchs, pruef-personen-liste,
pruef-serien, pruef-team, pruef-kalender.
Alle zehn legen ein eigenes Handyfenster an; dort fehlte nur
`hasTouch`. Ohne ihn meldet der Browser einen feinen Zeiger, und
keine Regel aus `@media (pointer: coarse)` greift -- dort stehen die
44-Pixel-Beruehrziele.
JEDE EINZELN GELAUFEN, ALLE GRUEN
Diese Seiten halten die Fingerregeln also schon ein. Es hatte nur
nie jemand nachgesehen.
Vorher geprueft, wie gross jede ist: 1 bis 7 Seitenaufrufe, 1 bis 5
Fenster -- echte Einzelpruefungen. (Zum Vergleich: die Pruefung von
gestern Nacht hatte 244 Seitenaufrufe, und genau das hatte ich
vorher nicht nachgesehen.)
DIE ZEITBOMBE IN pruef-kalender
Beim Umstellen fiel sie rot aus -- zweimal, an einer Stelle, die mit
dem Finger nichts zu tun hat:
FEHL im naechsten Monat ist kein Tag mehr "heute"
Gegen den ausgelieferten Stand gemessen: identisch rot. Nicht
meine Aenderung, sondern der Kalender.
Heute ist der 29. September. Das Oktober-Raster zeigt in seiner
ersten Zeile die letzten Septembertage mit, und einer davon IST
heute. Die Anwendung macht dabei alles richtig: `kalender.js` setzt
die Marke an `tag === daten.heute`, also am DATUM und nicht an der
Rasterposition. Genau das sollte die Pruefung beweisen -- und schlug
an, weil die Anwendung es tat.
Geschrieben wurde sie an einem Tag in der Monatsmitte. Von da an war
sie richtig, bis der Kalender sie einholte. Dasselbe Muster wie
`gate-oeffnung.mjs` am 06.09.2026 im Shop: Ein Test, der die
Wanduhr als Annahme benutzt, misst irgendwann das Gegenteil.
Gefragt wird jetzt, was gemeint war: Ein EIGENER Tag des
Folgemonats darf nie „heute" sein; ein mitgezeigter Randtag
(`data-fremd="ja"`) dagegen sehr wohl, und zwar genau dann, wenn er
es ist. Das gilt an jedem Tag des Jahres. Die Meldung nennt jetzt
beide Zahlen:
ok im naechsten Monat ist kein EIGENER Tag mehr "heute"
(0 eigene, 1 mitgezeigte Randtage)
WAS UEBRIG BLEIBT: SECHS SCHWERE FAELLE
pruef-befinden, pruef-notizen, pruef-teamlage-karten,
pruef-terminregel, pruef-werdegang, pruef-grosscheck.
Dort schaltet `setViewportSize` mitten im Ablauf auf Handyformat um
-- und der Finger laesst sich nachtraeglich nicht setzen, er gehoert
zum Kontext. Jeder Fall braucht einen eigenen Kontext samt
Anmeldung: Umbau, nicht Einzeiler.
`pruef-grosscheck` bleibt unangetastet, bis Filipe einen Lauf
freigibt. Eine Aenderung, die ich nicht pruefen darf, liefere ich
nicht aus.
GEPRUEFT
alle zehn einzeln: EXIT 0, keine FEHL-Zeile
pruef-kalender EXIT 0 (vorher 2 Fehlschlaege, auch auf HEAD)
pruef-fingermass 3 / 0, Grundlinie 6
This commit is contained in:
@@ -192,6 +192,12 @@ const lesen = (seite) => seite.evaluate(() => ({
|
||||
kwSpalten: document.querySelectorAll(".k-kw").length,
|
||||
kwWerte: [...document.querySelectorAll(".k-kw")].map((k) => k.textContent),
|
||||
heuteZellen: document.querySelectorAll('.k-tag[data-heute="ja"]').length,
|
||||
/* Ein Monatsraster zeigt die Randtage der Nachbarmonate mit
|
||||
(`data-fremd="ja"`). Fuer die Frage „wandert die Heute-Marke
|
||||
mit der Ansicht?" zaehlen nur die EIGENEN Tage -- siehe die
|
||||
Pruefung beim Blaettern. */
|
||||
heuteEigen: document.querySelectorAll('.k-tag[data-heute="ja"]:not([data-fremd="ja"])').length,
|
||||
heuteFremd: document.querySelectorAll('.k-tag[data-heute="ja"][data-fremd="ja"]').length,
|
||||
feiertagZellen: document.querySelectorAll('.k-tag[data-feiertag="ja"]').length,
|
||||
fremdZellen: document.querySelectorAll('.k-tag[data-fremd="ja"]').length,
|
||||
/* Eintraege */
|
||||
@@ -344,7 +350,30 @@ for (const [breite, wie] of [[1440, "Computer"], [390, "Handy"]]) {
|
||||
await seite.waitForTimeout(400);
|
||||
const weiter = await lesen(seite);
|
||||
ok(weiter.zeitraum !== vorher, `vorwärts blättern wechselt den Monat (${vorher} → ${weiter.zeitraum})`);
|
||||
ok(weiter.heuteZellen === 0, "im nächsten Monat ist kein Tag mehr \"heute\"");
|
||||
/* DIESE PRUEFUNG WAR EINE ZEITBOMBE (entschärft 29.09.2026).
|
||||
|
||||
Sie stand auf `weiter.heuteZellen === 0` und war jahrelang grün
|
||||
-- bis heute. Am 29. September zeigt das Oktober-Raster in
|
||||
seiner ersten Zeile die letzten Septembertage mit, und einer
|
||||
davon IST heute. Die Anwendung macht dabei alles richtig:
|
||||
`kalender.js` setzt die Marke an `tag === daten.heute`, also am
|
||||
Datum und nicht an der Rasterposition. Genau das sollte die
|
||||
Pruefung ja beweisen -- und schlug an, weil die Anwendung es
|
||||
tat.
|
||||
|
||||
Geschrieben wurde sie an einem Tag in der Monatsmitte. Von da
|
||||
an war sie richtig, bis der Kalender sie einholte, und dann
|
||||
kostete der Fehlalarm Vertrauen in den ganzen Satz. Dasselbe
|
||||
Muster wie `gate-oeffnung.mjs` am 06.09.2026 im Shop.
|
||||
|
||||
Gefragt wird jetzt, was gemeint war: Die Marke darf NICHT an
|
||||
der Ansicht haengen. Ein EIGENER Tag des Folgemonats darf nie
|
||||
„heute" sein -- ein mitgezeigter Randtag des laufenden Monats
|
||||
dagegen sehr wohl, und zwar genau dann, wenn er es ist. Das
|
||||
gilt an jedem Tag des Jahres. */
|
||||
ok(weiter.heuteEigen === 0,
|
||||
`im nächsten Monat ist kein EIGENER Tag mehr "heute" `
|
||||
+ `(${weiter.heuteEigen} eigene, ${weiter.heuteFremd} mitgezeigte Randtage)`);
|
||||
await seite.click("#heute-knopf");
|
||||
await seite.waitForTimeout(400);
|
||||
const zurueck = await lesen(seite);
|
||||
@@ -762,7 +791,11 @@ console.log("\n=== Die gerechneten Tage");
|
||||
======================================================================= */
|
||||
console.log("\n=== Am Handy wird aus einer Pille ein Punkt");
|
||||
{
|
||||
const kPunkt = await browser.newContext({ viewport: { width: 390, height: 1100 } });
|
||||
/* MIT FINGER. Ohne `hasTouch` meldet der Browser einen feinen
|
||||
Zeiger, und keine Regel aus `@media (pointer: coarse)` greift --
|
||||
dort stehen die 44-Pixel-Beruehrziele. Siehe pruef-fingermass.mjs. */
|
||||
const kPunkt = await browser.newContext({ viewport: { width: 390, height: 1100 },
|
||||
hasTouch: true, isMobile: true });
|
||||
const sPunkt = await anmelden(kPunkt, "admin", "CODE-DOGI-0001");
|
||||
try {
|
||||
await sPunkt.goto(BASIS + "/workspace/kalender.html", { waitUntil: "networkidle" });
|
||||
|
||||
Reference in New Issue
Block a user