feat: single-source theme discovery replaces three hardcoded whitelists
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
"""Theme discovery must be a single source of truth."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
from app import core, theme_pro, theme_store
|
||||
|
||||
ROOT = Path(core.__file__).resolve().parent.parent
|
||||
|
||||
def test_discover_returns_builtin_themes_with_manifests():
|
||||
ids = core.discover_themes()
|
||||
for tid in ('automotive', 'industrial', 'corporate', 'minimal'):
|
||||
assert tid in ids
|
||||
for tid in ids:
|
||||
manifest = json.loads((ROOT / 'themes' / tid / 'manifest.json').read_text(encoding='utf-8'))
|
||||
assert manifest.get('id') == tid
|
||||
|
||||
def test_three_whitelists_agree():
|
||||
assert set(core.THEMES) == set(theme_pro.THEMES) == set(theme_store.BUILTIN)
|
||||
assert isinstance(core.THEMES, tuple)
|
||||
Reference in New Issue
Block a user