Files
hermes-webui/tests/test_katex_vendored_assets.py
2026-05-26 23:49:02 +02:00

28 lines
1.1 KiB
Python

"""Regression coverage for vendored KaTeX assets."""
from __future__ import annotations
import pathlib
REPO = pathlib.Path(__file__).parent.parent
INDEX_HTML = (REPO / "static" / "index.html").read_text(encoding="utf-8")
UI_JS = (REPO / "static" / "ui.js").read_text(encoding="utf-8")
VENDOR_DIR = REPO / "static" / "vendor" / "katex" / "0.16.22"
def test_index_loads_vendored_katex_css_instead_of_cdn():
assert "static/vendor/katex/0.16.22/katex.min.css" in INDEX_HTML
assert "https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.css" not in INDEX_HTML
def test_runtime_loads_vendored_katex_js_instead_of_cdn():
assert "static/vendor/katex/0.16.22/katex.min.js" in UI_JS
assert "https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.js" not in UI_JS
def test_vendored_katex_fonts_are_present_for_local_font_src():
css = (VENDOR_DIR / "katex.min.css").read_text(encoding="utf-8")
assert "url(fonts/KaTeX_Main-Regular.woff2)" in css
assert (VENDOR_DIR / "katex.min.js").is_file()
assert (VENDOR_DIR / "fonts" / "KaTeX_Main-Regular.woff2").is_file()
assert (VENDOR_DIR / "fonts" / "KaTeX_AMS-Regular.woff2").is_file()