diff --git a/src/static/js/studio.js b/src/static/js/studio.js index 191bc6e..8df4a21 100644 --- a/src/static/js/studio.js +++ b/src/static/js/studio.js @@ -1841,6 +1841,9 @@ const Studio = { // Die Oberflaeche nutzt das nicht mehr, zeigt einen so gestarteten Lauf // aber korrekt an, denn er kann aus der klassischen Ansicht kommen. _CANCELLABLE: ['collect', 'full'], + // 'network' hat keine Karte mehr, das Label bleibt trotzdem stehen. Kaeme + // der Baustein im Server, meldete ein laufender Schritt sonst nur seinen + // technischen Schluessel. _STAGE_LABELS: { collect: 'Artikel holen', analyze: 'Lagebild schreiben', factcheck: 'Fakten prüfen', geoparse: 'Orte erkennen', diff --git a/tests/test_studio_struktur.py b/tests/test_studio_struktur.py index 6e1d785..154635b 100644 --- a/tests/test_studio_struktur.py +++ b/tests/test_studio_struktur.py @@ -76,6 +76,35 @@ pruefe("B4 Panel vorhanden", '
' in st pruefe("B5 activateTab kennt den Reiter", "if (key === 'settings') this.loadSettings();" in studio_js) +# Bekannte tote Verweise aus der Domain-Sperrliste im Quellen-Modal. Alle +# Zugriffe liegen hinter einer Existenzpruefung (showBlockDomainDialog kehrt +# bei fehlendem Formular sofort zurueck), es droht also kein Absturz. Sie +# werden gemeldet, zaehlen aber nicht als Fehler, damit die Pruefung nicht +# dauerhaft rot steht und niemand mehr hinsieht. +ALTLASTEN = { + "block-domain-input", "block-domain-notes", "source-overview-chevron", + "sources-block-form", "sources-hint", +} + +print("\nB2) Kein Zugriff auf Elemente, die es nicht gibt") +# Ein getElementById auf ein entferntes Element scheitert still. Beim Umbau +# der Bausteinspalte waere genau das leicht passiert. +for name, js_quelle, html_quelle in [("studio", studio_js, studio_html), + ("dashboard", app_js, dash_html)]: + vorhanden = set(re.findall(r'\bid="([^"]+)"', html_quelle)) + # Was das Skript selbst erzeugt, steht nicht im Dokument + vorhanden |= set(re.findall(r"\.id = '([^']+)'", js_quelle)) + vorhanden |= set(re.findall(r'id="([^"]+)"', js_quelle)) + vorhanden |= set(re.findall(r'\bid="([^"]+)"', comp_js)) + gesucht = set(re.findall(r"getElementById\('([^']+)'\)", js_quelle)) + fehlend = sorted(g for g in gesucht if g not in vorhanden) + neue = [g for g in fehlend if g not in ALTLASTEN] + pruefe(f"B2 {name}.js greift nur auf vorhandene Elemente zu " + f"({len(gesucht)} geprueft)", not neue, neue) + bekannt = [g for g in fehlend if g in ALTLASTEN] + if bekannt: + print(f" bekannte Altlast, abgesichert: {', '.join(bekannt)}") + print("\nC) Jedes onclick zeigt auf eine vorhandene Methode") for name, html, js, praefix in [ ("studio", studio_html, studio_js, "Studio"),