"""Menu ⋯ des tuiles projets : copie d'URL (#44) et thème opaque barre Fusion / Spark, sombre et clair (#45). Le menu était transparent parce que son fond utilisait var(--surface-1), variable jamais définie dans :root. """ def test_card_menu_offers_copy_url(client, fake_gitea): page = client.get("/") assert "Copier l'URL du projet" in page.text assert 'data-copy-url="http://gitea.test/Projets/demo"' in page.text def test_card_menu_theme_is_opaque_and_dual(client, fake_gitea): css = client.get("/static/css/style.css").text # Le menu ne repose plus sur la variable indéfinie. menu = css.split(".card-menu {", 1)[1].split("}", 1)[0] assert "var(--surface-1)" not in menu assert "var(--menu-bg)" in menu # Jetons barre Fusion / Console v7.2, clair par défaut… assert "--menu-bg: #ffffff" in css # …et variante sombre explicite, comme draco-barre.css. assert '[data-theme="dark"] .card-menu' in css assert "--menu-bg: #1a1c1a" in css assert "prefers-color-scheme: dark" in css def test_dashboard_js_copy_contract(client, fake_gitea): js = client.get("/static/js/dashboard.js").text assert "data-copy-url" in js assert "navigator.clipboard" in js assert "execCommand('copy')" in js assert "URL du projet copiée" in js