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