Zwoelf rote Pruefungen -- und kein einziger Fehler im Programm
Der Rundumcheck geht weiter. Diese zwoelf standen im Nachtlauf als rot
und waren es nicht: Jede hat den Umbau vom 24.09. (die Haustrennung),
den vom 25.09. (die zugetragenen Punkte) oder eine Umbenennung
mitbekommen -- nur ihre Erwartung nicht.
DAS IST KEIN TROST. Ein Fehlalarm zeigt auf eine echte Stelle und nennt
eine plausible Zahl; man sucht danach an richtigem Code. Und zwoelf rote
Zeilen, die immer rot sind, nehmen dem ganzen Satz die Stimme.
=== DIESELBE WURZEL, SECHSMAL: DAS FALSCHE HAUS ===
Seit dem 24.09. antwortet der Server auf der Agenturadresse nicht mehr
ueber Team-Dogi-Leute -- und genau das taten diese Pruefungen:
pruef-nachwuchs legte einen Modi ueber die Agenturadresse an
(400). Einundzwanzig Meldungen hingen an diesem
einen Aufruf. 82 Zeilen auf crew. umgestellt,
aus „Mara, Managerin" wurde die linke Hand --
im Teamhaus ist sie das, was gemeint war.
230 -> 262 Pruefungen, 0 Fehler.
pruef-schritt dasselbe beim Aufgabenbrett (404/400).
pruef-treff-werkzeuge fragte die Einladungsliste eines Modis auf der
Agenturadresse ab -- dort ist er nicht.
pruef-rechte-umstellen benutzte `wissen.html` als zweite Probeseite.
Die ist laut Rechtetafel fuer alle offen und auf
crew. trotzdem zu: Dort kommt man nur auf Seiten,
fuer die es eine Kachel gibt. Jetzt material.html.
pruef-personen-formular verglich eine Erwartung FUER die Agentur mit
einer Messung OHNE Adresse (127.0.0.1) -- vier
gegen acht Rollen. Beides war richtig, nur nicht
dasselbe.
pruef-treff suchte „Support" zwischen den Brettern. Er steht
in „Fuer dich", wo er hingehoert -- eine kaputte
Seite zu melden ist kein Aushang. Die Liste stand
ZWEIMAL in der Datei; nachgezogen wurde eine.
Jetzt eine, von beiden benutzt.
=== ZWEIMAL: EINE FESTE ZAHL, DIE DIE SEITE UEBERHOLT HAT ===
pruef-community-sicht erlaubte „3 bis 8 Seiten". Es sind zwoelf, und
jede gehoert dorthin. Statt einer Spanne steht
jetzt die LISTE da: Kommt eine dazu, wird die
Zeile rot und nennt sie beim Namen. Eine Spanne
haette elf statt zwoelf stillschweigend
durchgelassen -- in beide Richtungen.
pruef-nachwuchs schaltete EINE Person ab und erwartete, dass die
Ampel danach schweigt. Der Kommentar darueber
sagt selbst: „Die Schwelle wird nicht
abgeschrieben, sondern aus dem Verhalten
abgeleitet" -- eine feste Anzahl abzuschalten ist
aber eine Abschrift in anderer Waehrung. Jetzt
wird abgeschaltet, BIS es kippt.
=== UND VIERMAL EIN WERKZEUG, DAS STUMPF WAR ===
pruef-scout-zuteilung suchte `.person__zeile` -- eine Klasse, die es
nicht mehr gibt. `querySelectorAll` liefert dafuer
ein leeres Feld, `.some()` darauf ist immer
false: Die Pruefung war nicht rot, weil etwas
fehlte, sondern weil sie nichts ansehen konnte.
Jetzt `.person`, und die ANZAHL der gefundenen
Karten steht in einer eigenen Bedingung.
pruef-loeschen suchte `::before` in einem Fenster von 600
Zeichen ab dem Selektor. Das misst die Laenge des
KOMMENTARS: Am 25.09. kam eine Begruendung von
zwanzig Zeilen dazu, und die Regel rutschte
hinaus. Jetzt wird nach dem Selektor gesucht.
pruef-portnummern hielt jedes `listen(` fuer einen Serverstart --
auch das blosse Nachsehen, ob eine Nummer frei
ist. Damit mahnte sie ausgerechnet die Datei an,
die das Vergeben der Nummern prueft. Jetzt zaehlt
der Import von `index.js`; dazu vier Gegenproben,
damit die engere Fassung nicht zum blinden Fleck
wird.
pruef-spicy stellte eine Person auf „manager" und dann
weiter. An Managern aendert seit dem 22.09. nur
DogFather etwas -- die Pruefung hatte sich selbst
die Tuer zugezogen. Jetzt kommt „manager" zuletzt,
und dass danach nichts mehr geht, ist eine eigene
Zeile. Aus dem Stolperstein wird eine Aussage.
=== EINER WAR FAST EIN BEFUND ===
pruef-alle-sehen-es meldete „highlight: DogFather 0, Community 0".
Das Brett hat als einziges keinen Katalog (dort
stehen echte Hoehepunkte, keine Vorlagen), und an
einem leeren Brett ist „sehen beide dasselbe?"
nicht zu messen: null gleich null waere auch dann
wahr, wenn die Community gar nichts duerfte.
Die Pruefung legt dort jetzt selbst einen Eintrag
an -- und musste dabei zweimal lernen: Der Eintrag
gehoert VOR den Katalog (danach ist die
Schreibbremse ausgeloest, 429), und er muss
FREIGEGEBEN werden, sonst sieht die Community ihn
zu Recht nicht. Beides steht jetzt als Aussage in
der Pruefung.
GEMESSEN: alle zwoelf gruen -- 43, 10, 31, 262, 43, 15, 56, 69, 37, 85,
73 und 80 Pruefungen, zusammen 804, kein Fehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -57,7 +57,18 @@ const melde = (t) => console.log(t);
|
||||
const ok = (b, t) => { geprueft++; console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; };
|
||||
|
||||
const CREW = "crew.dogfather-universe.com";
|
||||
const HAUS = "workspace.dogfather-universe.com";
|
||||
/* ==== DIESE PRUEFUNG WOHNT BEI TEAM DOGI (25.09.2026) ==============
|
||||
|
||||
Gemessen werden Modis, ihre Aufgaben und ihre Entwicklung -- alles
|
||||
davon gehoert ins Teamhaus. Gefragt wurde trotzdem ueber die
|
||||
AGENTURadresse, und seit der Trennung vom 24.09.2026 antwortet der
|
||||
Server dort richtigerweise mit 400 oder 404: Einen Modi gibt es dort
|
||||
nicht. Die Folge waren Meldungen, die alle an einem einzigen Aufruf
|
||||
hingen -- Folge, keine Ursache.
|
||||
|
||||
Die Agenturadresse bleibt unter ihrem Namen stehen; gebraucht wird
|
||||
sie nur noch dort, wo ausdruecklich das andere Haus gemeint ist. */
|
||||
const AGENTUR = "workspace.dogfather-universe.com";
|
||||
|
||||
const { DatabaseSync } = await import("node:sqlite");
|
||||
const { scryptSync, randomBytes, createHmac } = await import("node:crypto");
|
||||
@@ -107,7 +118,7 @@ async function anmelden(rolle, code, host) {
|
||||
const r = await ruf("/workspace/api/anmelden", host, "POST", {}, { rolle, code });
|
||||
return [].concat(r.kopf?.["set-cookie"] || []).map((c) => c.split(";")[0]).join("; ");
|
||||
}
|
||||
const kDogi = await anmelden("admin", "CODE-DOGI-0001", HAUS);
|
||||
const kDogi = await anmelden("admin", "CODE-DOGI-0001", CREW);
|
||||
const kHand = await anmelden("hand", "CODE-HAND-0001", CREW);
|
||||
const kFrida = await anmelden("modi", "CODE-MODI-0001", CREW);
|
||||
ok(!!kDogi && !!kHand && !!kFrida, "DogFather, die rechte Hand und ein Modi sind angemeldet");
|
||||
@@ -125,7 +136,30 @@ const SELBST = kat.ENTWICKLUNG_SELBST[0].schluessel;
|
||||
bekam daraufhin 401, und WEIL sie nichts setzen konnte, ging ein
|
||||
zweiter Test ("aus der Beobachtung eines anderen wird kein Schritt")
|
||||
aus dem falschen Grund durch. Ein grüner Haken über einer Leere. */
|
||||
const wo = (keks) => (keks === kDogi ? HAUS : CREW);
|
||||
const wo = (keks) => (keks === kDogi ? CREW : CREW);
|
||||
|
||||
/* ==== ZUERST ZUTRAGEN, DANN MESSEN (25.09.2026) ====================
|
||||
|
||||
Filipe: „es sollen nur die menge angezeigt werden die wir zutragen
|
||||
und erledigte dan auch nur die die erledigt wurden von den
|
||||
zugetragenen."
|
||||
|
||||
Seither ist das GANZE der Kachel das, was einem Menschen zugetragen
|
||||
ist -- nicht mehr der ganze Katalog. Diese Pruefung setzte
|
||||
Einschaetzungen auf Punkte, die Frida nie bekommen hatte; die
|
||||
Uebersicht zaehlte sie zu Recht nicht mit, und die Meldung lautete
|
||||
„die Kachel zaehlt sofort mit (0 -> 0)".
|
||||
|
||||
DIE PRUEFUNG MISST JETZT DIESELBE LAGE WIE VORHER -- nur mit dem
|
||||
Schritt davor, den es seit gestern gibt. Die drei Punkte, um die es
|
||||
unten geht, werden Frida zugetragen; alles andere bleibt, wie es
|
||||
war. Ueber die ECHTE Route und nicht ueber die Datenbank: So ist
|
||||
der Weg, den auch DogFather nimmt, gleich mitgeprueft. */
|
||||
{
|
||||
const a = await ruf(`/workspace/api/entwicklung/person/${idFrida}/punkte`,
|
||||
CREW, "PUT", { cookie: kDogi }, { punkte: [P1, P2] });
|
||||
ok(a.code === 200, `die zwei Punkte sind Frida zugetragen (${a.code})`);
|
||||
}
|
||||
const setzen = (keks, punkt, stufe, anlass) =>
|
||||
ruf(`/workspace/api/entwicklung/person/${idFrida}/${punkt}`, wo(keks),
|
||||
"PUT", { cookie: keks }, { stufe, anlass });
|
||||
@@ -182,7 +216,7 @@ melde("=== 2. Eine echte Aufgabe ===");
|
||||
"der Anlass steht in der Beschreibung");
|
||||
|
||||
/* UND SIE STEHT WIRKLICH AUF DEM BRETT, nicht nur in der Tabelle. */
|
||||
const brett = json(await ruf("/workspace/api/aufgaben", HAUS, "GET", { cookie: kDogi }));
|
||||
const brett = json(await ruf("/workspace/api/aufgaben", CREW, "GET", { cookie: kDogi }));
|
||||
const drauf = (brett.aufgaben || []).find((x) => x.id === a.id);
|
||||
ok(!!drauf, "und sie taucht auf dem Aufgabenbrett auf");
|
||||
|
||||
@@ -272,7 +306,7 @@ melde("=== 6. Der Kreis ===");
|
||||
const d = oeffne();
|
||||
const a = d.prepare("SELECT id FROM aufgaben WHERE aus_punkt = ?").get(P1);
|
||||
d.close();
|
||||
const fertig = await ruf(`/workspace/api/aufgaben/${a.id}`, HAUS, "PATCH",
|
||||
const fertig = await ruf(`/workspace/api/aufgaben/${a.id}`, CREW, "PATCH",
|
||||
{ cookie: kDogi }, { status: "erledigt" });
|
||||
ok(fertig.code === 200, `die Aufgabe wird erledigt (${fertig.code})`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user