diff --git a/server/pruef-reaktion.mjs b/server/pruef-reaktion.mjs index c411803e..77ab1e79 100644 --- a/server/pruef-reaktion.mjs +++ b/server/pruef-reaktion.mjs @@ -831,12 +831,45 @@ melde("=== 12. Die Regie ==="); "der Beenden-Knopf liegt in der Leiste -- also auch dann erreichbar, " + "wenn die Regie zugeklappt ist"); - /* Und die Kuerzel, die das Programm bindet, stehen auch dabei. - Ein Kuerzel, das niemand kennt, ist keins. */ - const legende = (html.match(/
[\s\S]*?<\/p>/) || [""])[0];
- for (const [taste, wort] of [["Leertaste", "Leertaste"], ["M", "M"], ["N", "N"]]) {
- ok(legende.includes(`${wort}`), `das Kuerzel ${taste} steht in der Legende`);
+ /* ==== JEDE TASTE STEHT AN IHREM KNOPF ========================
+
+ Hier wurde bis zum 28.09. eine LEGENDE geprueft: ein Absatz am
+ Ende der Regie, der alle Kuerzel aufzaehlte. Der stand hinter
+ ALLEN Registern -- also auch unter „Ton" und „Spenden", wo
+ keines davon etwas tut. Und eine Legende zwingt dazu, vom Knopf
+ zur Liste zu schauen und zurueck.
+
+ Jetzt steht jede Taste an dem Knopf, den sie bedient. Geprueft
+ wird deshalb nicht mehr, ob sie IRGENDWO steht, sondern ob sie
+ am RICHTIGEN Knopf steht -- ein Kuerzel an der falschen Stelle
+ ist schlimmer als keins. */
+ const nahBei = (kennung, taste) => {
+ const i = html.indexOf(`id="${kennung}"`);
+ if (i < 0) return false;
+ /* Vom Knopfanfang bis zu seinem Ende -- nicht weiter, sonst
+ zaehlte die Taste des Nachbarn mit. */
+ const bis = html.indexOf("", i);
+ return bis > 0 && html.slice(i, bis).includes(`${taste}`);
+ };
+ for (const [kennung, taste, wo] of [
+ ["v-zurueck", "←", "zehn Sekunden zurueck"],
+ ["v-vor", "→", "zehn Sekunden vor"],
+ ["v-naechstes", "N", "Naechstes"],
+ ["v-tauschen", "T", "Wechseln"],
+ ]) {
+ ok(nahBei(kennung, taste), `die Taste ${taste} steht an „${wo}"`);
}
+ ok(/Leertaste<\/kbd><\/span>/.test(html),
+ "und die Leertaste unter dem Play-Knopf");
+ ok(/id="s-mikro-wort">Mikro<\/span>M<\/kbd>/.test(html),
+ "das M am Mikro-Knopf");
+ ok(/1<\/kbd> bis 5<\/kbd>/.test(html),
+ "und Eins bis Fuenf bei der Anordnung");
+ /* GEGENPROBE: Die alte Legende darf NICHT mehr dastehen -- sonst
+ stuende dasselbe zweimal, und beim naechsten Kuerzel pflegt
+ jemand nur eine der beiden Stellen. */
+ ok(!/ /.test(html),
+ "Gegenprobe: die Legende hinter allen Registern ist weg");
ok(/taste === 'm' \|\| taste === 'M'/.test(js) && /taste === 'n' \|\| taste === 'N'/.test(js),
"und das Programm hoert auch darauf");
ok(/closest\('input, textarea, select/.test(js),
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 5db7bc16..c331c83a 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`. -->
-
-
+
+
-
+