fix: cover admin controls in css themes
This commit is contained in:
@@ -568,6 +568,24 @@ class WebAppAssetTests(unittest.IsolatedAsyncioTestCase):
|
||||
self.assertIn("--home-logo-scale-mobile", base_css)
|
||||
self.assertIn("--home-logo-scale-desktop", base_css)
|
||||
|
||||
def test_builtin_css_themes_cover_admin_range_and_sortable_controls(self):
|
||||
theme_root = Path("backend/bot/app/web/themes")
|
||||
required_selectors = (
|
||||
"ui-range-input",
|
||||
"ui-range-input__thumb",
|
||||
"ui-sortable-item",
|
||||
"ui-sortable-handle",
|
||||
"is-drop-target",
|
||||
)
|
||||
|
||||
for key in ("light", "ascii", "windows95"):
|
||||
css = (theme_root / key / "style.css").read_text(encoding="utf-8")
|
||||
for selector in required_selectors:
|
||||
self.assertIn(selector, css, f"{key} theme must style {selector}")
|
||||
|
||||
windows95_css = (theme_root / "windows95" / "style.css").read_text(encoding="utf-8")
|
||||
self.assertIn("lucide-grip-vertical", windows95_css)
|
||||
|
||||
def test_prune_unused_appearance_assets_keeps_only_referenced_logo_and_favicons(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
root = Path(tmpdir)
|
||||
|
||||
@@ -33,14 +33,14 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
self.assertEqual(win95.tokens.style_preset, "win95")
|
||||
self.assertFalse(win95.use_primary_accent)
|
||||
self.assertTrue(win95.use_in_admin)
|
||||
self.assertEqual(win95.assets_version, 12)
|
||||
self.assertEqual(cfg.theme_by_key("light").assets_version, 4)
|
||||
self.assertEqual(win95.assets_version, 13)
|
||||
self.assertEqual(cfg.theme_by_key("light").assets_version, 5)
|
||||
ascii_theme = cfg.theme_by_key("ascii")
|
||||
self.assertIsNotNone(ascii_theme)
|
||||
self.assertEqual(ascii_theme.css_file, "style.css")
|
||||
self.assertFalse(ascii_theme.use_primary_accent)
|
||||
self.assertTrue(ascii_theme.use_in_admin)
|
||||
self.assertEqual(ascii_theme.assets_version, 5)
|
||||
self.assertEqual(ascii_theme.assets_version, 6)
|
||||
|
||||
def test_env_override_default_theme(self):
|
||||
cfg = builtin_webapp_themes_config("#00fe7a")
|
||||
@@ -391,7 +391,7 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
descriptor["assets_version"],
|
||||
cfg.theme_by_key("windows95").assets_version,
|
||||
)
|
||||
self.assertEqual(descriptor["assets_version"], 12)
|
||||
self.assertEqual(descriptor["assets_version"], 13)
|
||||
self.assertIn("lucide-house", css)
|
||||
self.assertIn("lucide-earth", css)
|
||||
self.assertIn("lucide-circle-check", css)
|
||||
@@ -404,6 +404,7 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
self.assertIn("lucide-qr-code", css)
|
||||
self.assertIn("New webapp surfaces: support, purchase info, password login", css)
|
||||
self.assertIn("Install guide theme surfaces", css)
|
||||
self.assertIn("Admin controls: range sliders and sortable rows", css)
|
||||
self.assertIn(
|
||||
(
|
||||
".theme-key-windows95 .support-list-card {\n"
|
||||
@@ -445,6 +446,7 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
css = (stale_theme_dir / "style.css").read_text(encoding="utf-8")
|
||||
self.assertIn(".theme-key-light.app-shell", css)
|
||||
self.assertIn("Install guide theme surfaces", css)
|
||||
self.assertIn("Admin controls: range sliders and sortable rows", css)
|
||||
|
||||
def test_resolved_refreshes_stale_builtin_ascii_assets(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
@@ -477,6 +479,7 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
descriptor = json.loads((stale_theme_dir / "theme.json").read_text(encoding="utf-8"))
|
||||
css = (stale_theme_dir / "style.css").read_text(encoding="utf-8")
|
||||
self.assertEqual(descriptor["assets_version"], cfg.theme_by_key("ascii").assets_version)
|
||||
self.assertEqual(descriptor["assets_version"], 5)
|
||||
self.assertEqual(descriptor["assets_version"], 6)
|
||||
self.assertIn("Console-style tables", css)
|
||||
self.assertIn("Install guide theme surfaces", css)
|
||||
self.assertIn("Admin controls: range sliders and sortable rows", css)
|
||||
|
||||
Reference in New Issue
Block a user