35 lines
1.3 KiB
Python
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
|