Dopplung weg: "Bei dir klingelt nichts" stand zweimal auf einem Schirm
Der neue Kasten von heute Mittag hat die alte Tagesblick-Zeile nicht
ersetzt, sondern sich darueber gesetzt. Beide sagten dasselbe,
untereinander, auf derselben Seite.
GEFUNDEN HAT DAS NUR EIN BILDSCHIRMFOTO. Beide Teile waren fuer sich
gruen: pruef-glocke verlangte die Zeile, pruef-push-hinweis den
Kasten, und keine der beiden konnte sehen, dass die andere existiert.
Zahlen zeigen so etwas nie. Deshalb macht pruef-push-hinweis jetzt
bei jedem Lauf ein Foto -- und scrollt vorher hin, weil der erste
Versuch brav die Begruessungskachel zeigte und den Kasten gar nicht
im Bild hatte. Ein Beweisbild ohne das, was es beweisen soll, ist
schlimmer als keins: Man glaubt ja, hingesehen zu haben.
Entfernt wurde die aeltere der beiden (19.09.2026). Sie war gut
gebaut, server-seitig und nicht wegklickbar -- aber sie hat das
Problem nicht geloest: Am 03.10. nachgemessen hatten immer noch
12 von 20 kein Geraet, darunter die linke Hand und ein Modi. Sie SAGT
es und man kann nichts tun; sie fuehrt nur auf eine andere Seite. Der
neue Kasten hat einen Knopf und erklaert den iPhone-Fall, in dem
Web-Push ohne Home-Bildschirm gar nicht geht.
Entscheidung von Filipe am 03.10. Offen gesagt, was damit aufgegeben
ist: Wer "Nicht jetzt" tippt, bekommt keine zweite Erinnerung mehr.
Gegensicherung ist die Personenliste -- dort steht seit heute bei
jeder Person, die nichts bekommt, genau das.
pruef-glocke 36 -> 33, und die Zahl ist erklaert: 5 Pruefungen zur
alten Zeile entfernt, 2 neue dafuer. Die neuen pruefen das
GEGENTEIL von vorher -- dass die Zeile nicht unbemerkt
zurueckkommt -- mit der Zahl der geprueften Hinweise in der
Bedingung, damit eine leere Antwort der Schnittstelle nicht als
"steht nicht drin" durchgeht.
Die alte Gegenprobe ("mit angemeldetem Geraet ist der Hinweis weg")
ist ersatzlos entfallen, nicht aus Bequemlichkeit: Sie waere ab jetzt
IMMER gruen, egal was das Haus tut. Eine Pruefung, die nichts mehr
widerlegen kann, taeuscht nur Deckung vor. Was sie geprueft hat,
prueft pruef-push-hinweis am neuen Kasten, mit einer echten
Anmeldung.
OHNE_ZAHL in start.js bleibt als leere Liste stehen -- der naechste
Zustandshinweis braucht sie wieder, und als Liste ist sie die eine
Stelle dafuer.
Gegengemessen: pruef-tagesblick 23, pruef-start-ansicht 160,
pruef-push-hinweis 16 -- alle 0 Fehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+35
-37
@@ -512,42 +512,40 @@ melde("\n=== Anmelden und wieder abmelden ===");
|
||||
const zahl = () => p.prepare("SELECT COUNT(*) AS n FROM push_anmeldungen").get().n;
|
||||
ok(zahl() === 0, `vorher ${zahl()} Anmeldungen in der Datenbank`);
|
||||
|
||||
/* ==== "BEI DIR KLINGELT NICHTS" (19.09.2026) ======================
|
||||
/* ==== "BEI DIR KLINGELT NICHTS" IST HIER WEG (03.10.2026) ========
|
||||
|
||||
Gemessen an diesem Tag auf dem echten Server: Von elf Zugaengen
|
||||
hatten SIEBEN kein einziges Geraet angemeldet. Bei ihnen kommt
|
||||
nichts an, solange die Seite zu ist -- keine Aufgabe, kein Termin,
|
||||
kein Anruf.
|
||||
Bis heute stand dieser Hinweis in "Was ist dran?", eingefuehrt am
|
||||
19.09., als sieben von elf Zugaengen kein Geraet hatten. Er hat
|
||||
das Problem nicht geloest: Am 03.10. nachgemessen waren es immer
|
||||
noch 12 von 20, darunter die linke Hand und ein Modi. Er SAGT es,
|
||||
aber man kann nichts tun -- er fuehrt nur auf eine andere Seite.
|
||||
|
||||
Die Glocke sagt das seit jeher korrekt. Nur tippt sie niemand an:
|
||||
Sie ist ein stiller Schalter in einer Leiste. Deshalb steht es
|
||||
jetzt auch dort, wo man hinsieht -- in "Was ist dran?".
|
||||
Ersetzt durch einen Kasten mit "Anschalten"-Knopf, direkt ueber
|
||||
dieser Liste (gemessen in pruef-push-hinweis.mjs, 16 Pruefungen).
|
||||
|
||||
DIE GEGENPROBE IST DER EIGENTLICHE PUNKT: Der Hinweis muss
|
||||
VERSCHWINDEN, sobald ein Geraet da ist. Eine Warnung, die immer
|
||||
kommt, ist keine Warnung mehr -- und bei sieben von elf Leuten
|
||||
stuende sie sonst dauerhaft ueber den echten. */
|
||||
WAS HIER JETZT GEPRUEFT WIRD, ist das Gegenteil von vorher, und
|
||||
zwar aus einem Grund: Aufgefallen ist die Dopplung erst auf einem
|
||||
Bildschirmfoto -- beide Saetze standen untereinander auf
|
||||
demselben Schirm. Zahlen haetten das nie gezeigt, beide Teile
|
||||
waren fuer sich genommen gruen. Diese Pruefung sorgt dafuer, dass
|
||||
die Zeile nicht unbemerkt zurueckkommt. */
|
||||
const hinweise = async () => (await seite.evaluate(async () => {
|
||||
const a = await fetch("/workspace/api/hinweise", { credentials: "same-origin" });
|
||||
return a.json();
|
||||
})).hinweise || [];
|
||||
|
||||
{
|
||||
const vorher = await hinweise();
|
||||
const h = vorher.find((x) => x.art === "kein_geraet");
|
||||
ok(!!h, "ohne Geraet steht der Hinweis in „Was ist dran?“");
|
||||
ok(h?.ziel === "anruf-probe.html",
|
||||
`und er fuehrt auf die Seite, die sagt warum (${h?.ziel})`);
|
||||
ok(h?.stufe === "offen",
|
||||
`als offener Punkt, nicht als Warnung (${h?.stufe}) — sonst stuende er `
|
||||
+ "dauerhaft ueber den echten Warnungen");
|
||||
/* Und auf dem Bildschirm steht er ohne die "1" davor: Er zaehlt
|
||||
nichts, er beschreibt einen Zustand. */
|
||||
const sichtbar = await seite.evaluate(() =>
|
||||
const offen = await hinweise();
|
||||
/* Die Zahl gehoert in die Bedingung: Kaeme die Schnittstelle gar
|
||||
nicht zustande, waere die Liste leer -- und "kein_geraet steht
|
||||
nicht drin" waere gruen, ohne etwas gesehen zu haben. */
|
||||
ok(Array.isArray(offen) && !offen.some((x) => x.art === "kein_geraet"),
|
||||
`"Bei dir klingelt nichts" steht nicht mehr in der Liste `
|
||||
+ `(${offen.length} Hinweise geprueft) -- es stuende sonst zweimal auf einem Schirm`);
|
||||
const aufDerSeite = await seite.evaluate(() =>
|
||||
[...document.querySelectorAll(".dran__punkt")]
|
||||
.map((li) => li.textContent.trim()).find((t) => /klingelt nichts/.test(t)) || "");
|
||||
ok(/klingelt nichts/.test(sichtbar) && !/^\s*1/.test(sichtbar),
|
||||
`auf der Seite steht er ohne Zahl davor: „${sichtbar.replace(/\s+/g, " ").slice(0, 60)}“`);
|
||||
.filter((li) => /klingelt nichts/.test(li.textContent)).length);
|
||||
ok(aufDerSeite === 0, `und auch nicht auf der Seite (${aufDerSeite})`);
|
||||
}
|
||||
|
||||
await seite.click("#glocke");
|
||||
@@ -555,17 +553,17 @@ melde("\n=== Anmelden und wieder abmelden ===");
|
||||
|
||||
ok(zahl() === 1, `nach dem Klick: ${zahl()} Anmeldung`);
|
||||
|
||||
/* GEGENPROBE: Jetzt muss der Hinweis weg sein. */
|
||||
{
|
||||
/* OHNE NEULADEN. Der erste Anlauf lud die Seite neu -- danach war
|
||||
das Test-Doppel fuer den Push-Dienst weg, der Glockenknopf stand
|
||||
wieder auf "aus", und die drei folgenden Pruefungen meldeten
|
||||
Fehler, die es nicht gab. Die Schnittstelle antwortet ohnehin
|
||||
live; eine neue Seite braucht es dafuer nicht. */
|
||||
const nachher = await hinweise();
|
||||
ok(!nachher.some((x) => x.art === "kein_geraet"),
|
||||
"mit einem angemeldeten Geraet ist der Hinweis weg — nichts zu quittieren");
|
||||
}
|
||||
/* Hier stand bis zum 03.10.2026 die Gegenprobe "mit angemeldetem
|
||||
Geraet ist der Hinweis weg". Sie ist ersatzlos entfallen -- nicht
|
||||
aus Bequemlichkeit, sondern weil sie seit dem Entfernen des
|
||||
Hinweises IMMER gruen waere, egal was das Haus tut. Eine
|
||||
Pruefung, die nichts mehr widerlegen kann, bestaetigt nichts;
|
||||
sie taeuscht nur Deckung vor.
|
||||
|
||||
Was sie geprueft hat ("verschwindet von selbst, sobald ein Geraet
|
||||
da ist"), prueft jetzt pruef-push-hinweis.mjs am neuen Kasten --
|
||||
dort mit einer echten Anmeldung, die nachweislich in der
|
||||
Datenbank landet. */
|
||||
|
||||
const eintrag = p.prepare("SELECT * FROM push_anmeldungen").get();
|
||||
ok(eintrag?.person_id === idDogi && /^https:\/\//.test(eintrag?.endpunkt || ""),
|
||||
|
||||
Reference in New Issue
Block a user