Harmoniser les styles de la carte : réglages communs, thèmes clair et sombre, composants uniques
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@ -381,7 +381,7 @@ def test_ui_applies_server_defaults():
|
||||
assert "meta.default_base" in _MAP_JS
|
||||
assert "meta.default_precision_opacity" in _MAP_JS
|
||||
# Réinitialiser oublie l'état local avant de reprendre celui du serveur
|
||||
assert "localStorage.removeItem(LS_KEY)" in _MAP_JS
|
||||
assert "lsDel(LS_KEY)" in _MAP_JS
|
||||
|
||||
|
||||
def test_ui_uses_standard_tilelayer():
|
||||
@ -1341,3 +1341,33 @@ def test_map_ui_has_pdf_export():
|
||||
assert "#printcard" in _MAP_CSS
|
||||
# bouton toujours visible : indépendant de /api/status.available
|
||||
assert 'id="btnPrint"' in _MAP_HTML and 'id="btnPrint" hidden' not in _MAP_HTML
|
||||
|
||||
|
||||
def test_ui_tokens_themes_and_components():
|
||||
from lidar_pipeline.mapui import _MAP_CSS, _MAP_HTML, _MAP_JS
|
||||
for var in ("--surface", "--on-accent", "--print", "--fs-sm", "--r-md", "--sp-2",
|
||||
"--shadow-lg", "--z-panel", "--z-toast"):
|
||||
assert var + ":" in _MAP_CSS, var
|
||||
# Palette sombre : système sombre (sauf clair forcé) ou sombre forcé
|
||||
assert '@media (prefers-color-scheme: dark)' in _MAP_CSS
|
||||
assert ':root:not([data-theme="light"])' in _MAP_CSS
|
||||
assert ':root[data-theme="dark"]' in _MAP_CSS
|
||||
for cls in (".btn-primary", ".btn-ghost", ".btn-icon", ".field", ".seg", ".hint"):
|
||||
assert cls in _MAP_CSS, cls
|
||||
assert 'id="btnTheme"' in _MAP_HTML
|
||||
assert "const THEME_LS = 'lidar-theme'" in _MAP_JS and "function applyTheme(" in _MAP_JS
|
||||
# Stockage local toujours protégé (navigation privée) : aucun accès
|
||||
# direct à localStorage hors du bloc lsGet/lsSet/lsDel.
|
||||
import re
|
||||
start = _MAP_JS.index("function lsGet(")
|
||||
end = _MAP_JS.index("// --- fin stockage")
|
||||
outside = _MAP_JS[:start] + _MAP_JS[end:]
|
||||
assert not re.search(r"localStorage\.(getItem|setItem|removeItem)\(", outside)
|
||||
# Code mort retiré
|
||||
for gone in ("genClass", "gen-input", "genClassInfo", ".grip", "layer-row", "#gps.busy"):
|
||||
assert gone not in _MAP_CSS + _MAP_HTML, gone
|
||||
# Plus de couleurs d'interface écrites en dur hors des palettes
|
||||
rules = _MAP_CSS[_MAP_CSS.rindex(":root[data-theme=\"dark\"]"):]
|
||||
rules = rules[rules.index("}") + 1:]
|
||||
for hard in ("#0b0e13", "#10141b", "#f4a261", "#4cc9f0", "#e76f51", "rgba(90, 160, 255"):
|
||||
assert hard not in rules, hard
|
||||
|
||||
Reference in New Issue
Block a user