HERMES-GIELIE/tests/test_verdigris_skin.py

42 lines
1.5 KiB
Python
Raw Normal View History

"""Verdigris skin registration and emerald/bronze palette affordances."""
from pathlib import Path
REPO = Path(__file__).parent.parent
CSS = (REPO / "static" / "style.css").read_text(encoding="utf-8")
BOOT_JS = (REPO / "static" / "boot.js").read_text(encoding="utf-8")
CONFIG_PY = (REPO / "api" / "config.py").read_text(encoding="utf-8")
INDEX_HTML = (REPO / "static" / "index.html").read_text(encoding="utf-8")
I18N_JS = (REPO / "static" / "i18n.js").read_text(encoding="utf-8")
def test_verdigris_skin_is_registered_in_all_files():
assert "{name:'Verdigris'" in BOOT_JS
assert "'verdigris':1" in INDEX_HTML
assert '"verdigris"' in CONFIG_PY
def test_verdigris_dark_palette_is_emerald():
assert ':root.dark[data-skin="verdigris"]' in CSS
assert "--bg:#0F1714" in CSS
assert "--sidebar:#121D18" in CSS
assert "--border:#22342C" in CSS
def test_verdigris_accent_is_bronze():
assert "--accent:#C89A5A" in CSS
assert "--accent-hover:#D6AE74" in CSS
assert "--focus-ring:rgba(200,154,90,.30)" in CSS
def test_verdigris_has_no_light_variant():
# The skin is dark-only; no light root block should be registered.
assert ':root[data-skin="verdigris"]{' not in CSS
assert ':root[data-skin=\"verdigris\"]{\n' not in CSS
def test_verdigris_i18n_lists_skin_in_all_locales():
# There are 12 locales; each should now include verdigris as the trailing skin.
# 10 locales use ASCII closing paren, 2 Chinese locales use full-width paren.
assert I18N_JS.count("verdigris)") + I18N_JS.count("verdigris)") == 14