feat(webui): Statusfilter als Mehrfachauswahl, Roadmap raus aus der Bugliste
Drei Aenderungen an derselben Liste, alle mit demselben Ziel: Sichtbar sein soll, was zu tun ist - und wenn etwas ausgeblendet wird, soll es gesagt werden. 1. Status als Ankreuzfelder statt Klappliste. Vorher liess sich genau eine Lage waehlen; "offen UND in Nachpruefung" ging nur, wenn jemand die Kombination vorher in die Liste geschrieben hatte. Angehakt ist ab Werk, was laeuft oder Aufmerksamkeit verlangt. Erledigtes, Geschlossenes und Abgelehntes bleibt draussen - es ist der groesste Teil des Bestandes. Das versteckte Feld vor den Ankreuzfeldern ist kein Schoenheitsfehler: HTML sendet fuer nicht angehakte Kaestchen nichts. Ohne es waere "alle Haken entfernt" von "erster Aufruf" nicht zu unterscheiden, und die Vorgabe kaeme bei jedem Versuch zurueck, sie loszuwerden. 2. Die Suche meldet verdeckte Treffer. Wer "288" sucht und nichts bekommt, schliesst daraus, es gebe den Eintrag nicht - dabei ist er nur erledigt. Eine Suche, die schweigt, obwohl sie etwas gefunden hat, ist schlimmer als gar keine. Die zweite Abfrage laeuft nur bei aktiver Suche. 3. Roadmap-Eintraege sind ab Werk aus der Bugliste heraus. Seit 2.7.0 IST ein Roadmap-Eintrag ein bugtracker_item; damit lag die Planung aller Projekte in derselben Liste wie die Meldungen - 217 von 229 Feature Requests. Die zwoelf echten Vorschlaege lagen darunter begraben. Getrennte Orte, keine geaenderten Daten: Der Filter holt die Planung jederzeit zurueck. Dazu ein Testfall, den es haette laengst geben muessen: index.php wurde von keinem einzigen Fall angefasst - die Suite prueft /api/. Ein Syntaxfehler in der groessten Datei des Projekts waere durch das Deploy-Tor gelaufen, ohne dass ein Test rot geworden waere. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c9c821a44a
commit
669b165785
@@ -67,6 +67,25 @@ def _(ctx):
|
||||
% (r.feld('version'), erwartet))
|
||||
|
||||
|
||||
@test('kern', 'Das WebUI antwortet, statt mit einem Serverfehler abzubrechen')
|
||||
def _(ctx):
|
||||
"""
|
||||
index.php ist mit Abstand die groesste Datei des Projekts und wurde bisher
|
||||
von keinem Testfall auch nur angefasst: Die Suite prueft /api/. Ein
|
||||
Syntaxfehler darin waere durch das Deploy-Tor gelaufen und haette die
|
||||
Oberflaeche lahmgelegt, ohne dass ein einziger Test rot geworden waere.
|
||||
|
||||
Mehr als das kann dieser Fall nicht: Ohne Sitzung bricht index.php in
|
||||
Zeile 45 mit einer Weiterleitung zur Anmeldung ab, der Rumpf laeuft also
|
||||
nie. Geprueft wird damit, dass PHP die Datei ueberhaupt uebersetzen kann -
|
||||
und genau das ist der Fehler, der im Betrieb am teuersten ist.
|
||||
"""
|
||||
r = ctx.client.get('/index.php', token=None)
|
||||
erwarte(r.status != 500,
|
||||
"index.php antwortet mit 500 - vermutlich ein Syntaxfehler: %s" % r.kurz(400))
|
||||
erwarte_status(r, 200, 302, 303)
|
||||
|
||||
|
||||
@test('kern', 'OpenAPI-Beschreibung ist gueltig')
|
||||
def _(ctx):
|
||||
"""Die Beschreibung ist der Vertrag mit den SDKs - sie muss ladbar bleiben."""
|
||||
|
||||
Reference in New Issue
Block a user