diff --git a/docs/superpowers/plans/2026-09-28-ausbaustufe-11.md b/docs/superpowers/plans/2026-09-28-ausbaustufe-11.md index 842a769..49237c2 100644 --- a/docs/superpowers/plans/2026-09-28-ausbaustufe-11.md +++ b/docs/superpowers/plans/2026-09-28-ausbaustufe-11.md @@ -56,7 +56,7 @@ geschrieben aus RecurringItems, PlannedItems und Tilgungsplänen aller Kredite. **Interfaces:** - Produces: `app.models.views.RESERVED_SCENARIO_NAME: str = "System-Ist"` (Task 2 verwendet sie in der View-SQL). -- [ ] **Step 1: Failing Tests schreiben** +- [x] **Step 1: Failing Tests schreiben** An `finance/tests/test_crud_api.py` anhängen (dort existiert bereits `H = {"Authorization": "Bearer test-key"}`): @@ -112,12 +112,12 @@ def test_szenario_loeschen_roundtrip_gui(client, db): assert "Wegwerf-Roundtrip" not in client.get("/szenarien").text ``` -- [ ] **Step 2: Tests laufen lassen — müssen fehlschlagen** +- [x] **Step 2: Tests laufen lassen — müssen fehlschlagen** Run: `cd finance && .venv/bin/python -m pytest -q tests/test_crud_api.py tests/test_gui.py -k "reserviert or loeschen or normale_namen"` Expected: FAIL (POST liefert 201 statt 422; Button fehlt). `test_szenario_loeschen_roundtrip_gui` und `test_szenario_normale_namen_weiter_erlaubt` dürfen schon grün sein. -- [ ] **Step 3: Konstante in `views.py`** +- [x] **Step 3: Konstante in `views.py`** In `finance/app/models/views.py` direkt nach den Imports: @@ -128,7 +128,7 @@ In `finance/app/models/views.py` direkt nach den Imports: RESERVED_SCENARIO_NAME = "System-Ist" ``` -- [ ] **Step 4: Namensprüfung in `routers/scenarios.py`** +- [x] **Step 4: Namensprüfung in `routers/scenarios.py`** Import ergänzen: `from app.models.views import RESERVED_SCENARIO_NAME` @@ -147,7 +147,7 @@ In `create_scenario` als erste Zeile: `_check_reserved_name(data.name)`. In `patch_scenario` direkt nach `fields = data.model_dump(exclude_unset=True)`: `_check_reserved_name(fields.get("name"))`. -- [ ] **Step 5: Löschen-Button in `szenarien.html`** +- [x] **Step 5: Löschen-Button in `szenarien.html`** Im `
` direkt nach dem „Bearbeiten"-Button einfügen. Bewusst ein ` ``` -- [ ] **Step 6: Tests grün + Gesamtsuite** +- [x] **Step 6: Tests grün + Gesamtsuite** Run: `cd finance && .venv/bin/python -m pytest -q` Expected: alle grün, 216 + 8 = 224 passed. -- [ ] **Step 7: Fable-Gate** — Faktencheck: Button im gerenderten HTML korrekt verschachtelt (nicht in `