Files
2026-06-24 14:40:43 +00:00

35 lines
1.3 KiB
Python

import json
from pathlib import Path
from app.renderer import render_documents
from app.theme_catalog import THEMES
ROOT = Path(__file__).resolve().parents[1]
def test_html_contains_customer_and_period():
payload = json.loads((ROOT / "examples" / "sample-report.json").read_text(encoding="utf-8"))
html, footer = render_documents(payload)
assert payload["customer"]["name"] in html
assert payload["report"]["period"]["label"] in html
assert "pageNumber" in footer
def test_classic_theme_renders():
payload = json.loads((ROOT / "examples" / "sample-report.json").read_text(encoding="utf-8"))
payload["design"]["theme"] = "classic"
html, _ = render_documents(payload)
assert "Monatsverlauf" in html
def test_all_registered_themes_render():
base = json.loads((ROOT / "examples" / "sample-report.json").read_text(encoding="utf-8"))
for theme_id, theme in THEMES.items():
payload = json.loads(json.dumps(base))
payload["design"]["theme"] = theme_id
payload["design"].pop("palette_mode", None)
html, footer = render_documents(payload)
assert payload["customer"]["name"] in html, theme_id
assert theme["name"] in html or payload["report"]["period"]["label"] in html, theme_id
assert "pageNumber" in footer, theme_id