Brain-5D-Space / tests /test_dashboard_experience.py
github-actions[bot]
Sync: publish Space API fix
5e0b58b
Raw History Blame Contribute Delete
2.39 kB
from pathlib import Path
STATIC = Path(__file__).parents[1] / "src" / "dashboard" / "static"
TABS = (
"overview",
"network",
"control",
"research",
"gate",
"settings",
"embodiment",
)
def test_experience_layer_covers_every_workspace() -> None:
source = (STATIC / "dashboard-experience.js").read_text(encoding="utf-8")
for tab in TABS:
assert f"{tab}:" in source
assert "activateWorkspace" in source
assert "Command palette" in source
assert "Keyboard shortcuts" in source
assert "Focus mode" in source
def test_experience_layer_is_presentation_only() -> None:
source = (STATIC / "dashboard-experience.js").read_text(encoding="utf-8")
assert "fetch(" not in source
assert "XMLHttpRequest" not in source
assert 'method: "POST"' not in source
assert 'method: "PUT"' not in source
assert 'method: "DELETE"' not in source
assert "/api/control" not in source
assert "/api/runtime" not in source
def test_experience_unknown_state_is_explicit() -> None:
source = (STATIC / "dashboard-experience.js").read_text(encoding="utf-8")
css = (STATIC / "dashboard-experience.css").read_text(encoding="utf-8")
assert "experience-unknown-state" in source
assert "Noch kein beobachteter Wert verfügbar" in source
assert ".experience-unknown-state" in css
def test_experience_has_responsive_and_accessible_contracts() -> None:
css = (STATIC / "dashboard-experience.css").read_text(encoding="utf-8")
assert 'body[data-theme="light"]' in css
assert "@media (max-width: 1180px)" in css
assert "@media (max-width: 820px)" in css
assert "@media (max-width: 520px)" in css
assert "prefers-reduced-motion" in css
assert ".experience-dialog::backdrop" in css
def test_experience_is_loaded_from_dashboard_module_graph() -> None:
console_log = (STATIC / "console-log.js").read_text(encoding="utf-8")
app = (STATIC / "app.js").read_text(encoding="utf-8")
assert 'import "./dashboard-experience.js"' in console_log
assert "console-log.js" in app
def test_experience_workspace_status_never_targets_body_state() -> None:
source = (STATIC / "dashboard-experience.js").read_text(encoding="utf-8")
assert ".experience-status-copy [data-experience-workspace]" in source
assert 'document.querySelectorAll("[data-experience-workspace]")' not in source