fix: Versionskennung an statischen Dateien gegen veraltete Browser-Caches (v0.13.1)

Gecachte style.css ohne Tortenfarben ließ alle Segmente schwarz erscheinen.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 17:54:55 +02:00
co-authored by Claude Opus 5.5
parent 23557db0fb
commit 60cd3c4fea
6 changed files with 29 additions and 10 deletions
+17 -1
View File
@@ -599,7 +599,8 @@ def test_planungs_refresh_fehler_bricht_seiten_nicht(client, monkeypatch):
def test_base_hat_doppelzaehlungs_dialog(client):
client.post("/login", data={"username": "admin", "password": "geheim"})
html = client.get("/").text
assert '<script src="/static/doppelzaehlung.js"></script>' in html
from app.version import get_version
assert f'<script src="/static/doppelzaehlung.js?v={get_version()}"></script>' in html
assert '<dialog id="doppelzaehlung-dialog">' in html
assert 'id="dz-abbrechen" autofocus' in html
assert ">Trotzdem speichern</button>" in html
@@ -637,3 +638,18 @@ def test_vorschlag_formular_nutzt_json_form_post(client):
from pathlib import Path
src = Path("app/templates/planning.html").read_text(encoding="utf-8")
assert re.search(r'class="inline-form" hx-ext="json-form" hx-post="/api/recurring"', src)
def test_statische_dateien_mit_versionskennung(client):
# Cache-Busting: jede neue VERSION erzwingt frische CSS/JS im Browser,
# sonst zeigen gecachte Altstände z. B. schwarze Tortensegmente.
from app.version import get_version
v = get_version()
login = client.get("/login").text
assert f'href="/static/style.css?v={v}"' in login
assert re.search(r'/static/[^"?]+"', login) is None
client.post("/login", data={"username": "admin", "password": "geheim"})
html = client.get("/").text
for datei in ("style.css", "htmx.min.js", "sort.js", "doppelzaehlung.js"):
assert f'/static/{datei}?v={v}"' in html
assert re.search(r'/static/[^"?]+"', html) is None