From cc007dfa041467df7fd15d7abbda27ff8cf316f6 Mon Sep 17 00:00:00 2001 From: bruno Date: Wed, 28 Oct 2026 22:59:13 -0400 Subject: [PATCH] =?UTF-8?q?Page=20Projets=20:=20copie=20URL=20dans=20le=20?= =?UTF-8?q?menu=20=E2=8B=AF=20+=20refonte=20th=C3=A8me=20barre=20Fusion/Sp?= =?UTF-8?q?ark=20(#44,=20#45)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_nav_theme.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/test_nav_theme.py diff --git a/tests/test_nav_theme.py b/tests/test_nav_theme.py new file mode 100644 index 0000000..1c4c29e --- /dev/null +++ b/tests/test_nav_theme.py @@ -0,0 +1,37 @@ +"""Navigation (#51) et bascule Dark/Light (#52). + +L'accordéon de la barre latérale omettait la section admin : +le JS posait nav-closed-admin, mais aucun style ne la suivait. +Le thème clair, lui, doit être atteignable par un bouton et +mémorisé, avec les jetons draco clairs. +""" + + +def test_admin_accordion_closes(client, fake_gitea): + css = client.get("/static/css/style.css").text + assert 'body.nav-closed-admin [data-group="admin"] .side-acc' in css + assert 'body.nav-closed-admin [data-group="admin"] .side-chevron' in css + + +def test_theme_toggle_present_and_versioned(client, fake_gitea): + page = client.get("/") + assert 'id="theme-toggle"' in page.text + assert "Mode clair" in page.text + assert "/static/js/nav.js?v=" in page.text + + +def test_theme_js_contract(client, fake_gitea): + js = client.get("/static/js/nav.js").text + assert "kanbante-theme" in js + assert "theme-toggle" in js + assert "data-theme" in js + + +def test_light_theme_tokens(client, fake_gitea): + css = client.get("/static/css/style.css").text + assert 'html[data-theme="light"]' in css + assert "--bg: #f2f2f0;" in css + assert "--surface: #ffffff;" in css + assert "--accent-2: #a92e63;" in css + assert 'html[data-theme="light"] .draco-bar' in css + assert 'html[data-theme="light"] .card-menu' in css