Workspace: Anleitung neben beiden Import-Knoepfen

Scouts und Manager sollen nicht raten muessen, woher die Zahlen kommen.

Unter der Knopfreihe steht jetzt dauerhaft (sobald einer der beiden Knoepfe
sichtbar ist), was die beiden Quellen sind: Backstage-Tabelle = Agenturzahlen
fuer alle auf einmal, TikTok-Datei = die Datei, an die nur der Creator selbst
kommt.

Backstage-Dialog: fuenf nummerierte Schritte. Der wichtigste davon ist
"Ueberschriftenzeile mitmarkieren" -- ohne sie kann der Server die Spalten
nicht benennen, und genau das war beim Testen der haeufigste Fehlgriff.
Dazu zwei stille Absaetze: woher die Zuordnung kommt (TikTok-Name im
Steckbrief) und warum das nicht automatisch geht.

TikTok-Dialog: der fertige Text zum Weiterleiten an den Creator, mit
Kopierknopf. Nennt JSON statt TXT (eine TXT-Datei laesst sich nicht
auswerten), die 1-4 Tage Wartezeit, und dass die Datei nur gelesen und
nicht gespeichert wird.

Bewusst KEIN erfundener Klickpfad durch Backstage: TikTok dokumentiert die
Menuenamen nirgends oeffentlich, und eine erfundene Beschriftung ist beim
naechsten Umbenennen schlimmer als keine. Beschrieben wird deshalb, WORAUF
zu achten ist ("die Tabelle mit den Zahlen"), das bleibt wahr.

Der Kopierknopf meldet einen Fehlschlag, statt Erfolg vorzutaeuschen.

pruef-backstage-import: 29 -> 36 Pruefungen, alle gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-11 13:51:00 +02:00
co-authored by Claude Opus 5
parent 5487b94f73
commit f171d0cffd
27 changed files with 486 additions and 295 deletions
+31
View File
@@ -304,6 +304,37 @@ console.log("\n=== Die Seite ===");
ok(/niemand_hier/.test(vorschau), "und den Namen, der nicht zugeordnet wurde");
const losFrei = await seite.$eval("#netz-los", (e) => !e.disabled);
ok(losFrei === true, "der Übernehmen-Knopf ist danach frei");
/* ---- DIE ERKLÄRUNG MUSS DA SEIN (11.09.2026) --------------------
Filipe: "ich brauch auch eine erklärung immer dabei wo die scouts
und manager das finden." Ein Text, den niemand prüft, verschwindet
beim nächsten Umbau -- und niemandem fällt es auf, weil ein
fehlender Satz nichts kaputtmacht. */
const schritte = await seite.$$eval("#netz-dialog .anleitung li", (ls) => ls.length);
ok(schritte >= 5, `die Backstage-Anleitung hat ${schritte} Schritte`);
const anleitung = await seite.$eval("#netz-dialog", (e) => e.textContent);
ok(/Überschriftenzeile/.test(anleitung),
"und sagt, dass die Überschriftenzeile mitmarkiert werden muss");
ok(/Steckbrief/.test(anleitung),
"und woher die Zuordnung kommt (TikTok-Name im Steckbrief)");
await seite.click("#netz-zu");
await seite.waitForTimeout(300);
const hinweis = await seite.$eval("#quellen-hinweis", (e) => (e.hidden ? "" : e.textContent));
ok(/Backstage/.test(hinweis) && /TikTok-Datei/.test(hinweis),
"unter den Knöpfen steht dauerhaft, was die beiden Quellen sind");
/* Und der fertige Text für den Creator -- mit den zwei Angaben, an
denen es sonst scheitert: JSON und "alle Daten". */
await seite.click("#tt-oeffnen");
await seite.waitForTimeout(300);
const fuerCreator = await seite.$eval("#tt-text", (e) => e.textContent);
ok(/JSON/.test(fuerCreator) && /Alle Daten/i.test(fuerCreator),
"der Text für den Creator nennt JSON und „Alle Daten“");
ok(/Einstellungen und Datenschutz/.test(fuerCreator) && /Deine Daten herunterladen/.test(fuerCreator),
"und den Weg in der App");
ok(/nicht gespeichert/.test(fuerCreator),
"und was mit der Datei passiert -- das gehört dem Creator gesagt");
await browser.close();
}