diff --git a/server/pruef-chat-ausbau.mjs b/server/pruef-chat-ausbau.mjs index 4debee3e..e0448845 100644 --- a/server/pruef-chat-ausbau.mjs +++ b/server/pruef-chat-ausbau.mjs @@ -318,9 +318,32 @@ melde("\n=== 3. Zum neuesten ==="); const knopfZu = await luna.seite.$eval("#zum-neuesten", (e) => e.hidden); ok(amEnde && knopfZu, "beim Öffnen steht er unten, und der Knopf ist weg"); - /* Luna liest weiter oben. */ - await luna.seite.$eval("#verlauf", (e) => { e.scrollTop = 0; }); + /* Luna liest weiter oben -- UND SIE SCROLLT WIE EIN MENSCH. + + Hier stand `e.scrollTop = 0`. Das setzt die Bildlaufposition zu, + ohne dass ein Rad gedreht, ein Finger gewischt oder eine Taste + gedrueckt wurde. Genau daran haengt im Chat aber eine + Entscheidung: „Wer selbst scrollt, hat entschieden" -- ab da + wird nicht mehr zur Neu-Linie gesprungen (die Zuhoerer sind + `wheel`, `touchstart`, `keydown`, `pointerdown`). + + Eine Zuweisung loest keines davon aus. Die Anwendung hielt Luna + deshalb weiter fuer jemanden, der nicht selbst gescrollt hat, + sprang zur Neu-Linie und setzte den Zaehler zurueck -- voellig + richtig. Dieselbe Lehre wie bei den Fingergeraeten: + `setViewportSize` macht aus einer Maus keinen Finger, und + `scrollTop = 0` macht aus einem Programm keinen Leser. */ + await luna.seite.hover("#verlauf"); + for (let i = 0; i < 12; i++) { + await luna.seite.mouse.wheel(0, -2000); + await luna.seite.waitForTimeout(60); + const oben = await luna.seite.$eval("#verlauf", (e) => e.scrollTop); + if (oben <= 0) break; + } await luna.seite.waitForTimeout(400); + const obenAngekommen = await luna.seite.$eval("#verlauf", (e) => e.scrollTop); + ok(obenAngekommen < 40, + `Luna ist mit dem Rad nach oben gescrollt (${obenAngekommen})`); const vorher = await luna.seite.$eval("#verlauf", (e) => e.scrollTop); await schicke(pat.seite, raumId, "Und noch etwas Neues dazu."); diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index cd1b9595..9ce6392a 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,8 +16,8 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +