"""Fusion ACC-1 — barre d'apps commune (carte kanbante#28). Le snippet figé de dracodev-commons est vendangé (CSS/JS statiques + partiel _draco_bar.html) et inclus par le cadre partagé _header.html : toutes les pages applicatives l'affichent avec Kanbante comme app courante ; l'écran de connexion, autonome, ne l'affiche pas. """ def test_barre_presente_sur_le_dashboard(client): r = client.get("/") assert r.status_code == 200 assert 'class="draco-bar"' in r.text assert 'data-current="kanbante"' in r.text assert "draco-barre.css" in r.text assert "draco-barre.js" in r.text assert 'window.DRACO_BAR_CONFIG' in r.text # Les quatre applications de la barre, aux URL publiques. for url in ("https://og.dracodev.net/", "https://flowdeck.dracodev.net/", "https://tiktak.dracodev.net/", "https://kanbante.dracodev.net/"): assert url in r.text def test_statiques_de_la_barre_servis(client): assert client.get("/static/css/draco-barre.css").status_code == 200 assert client.get("/static/js/draco-barre.js").status_code == 200 def test_pas_de_barre_sur_le_login(monkeypatch, fake_gitea): from fastapi.testclient import TestClient import app.main as main monkeypatch.setenv("KANBANTE_AUTH_USER", "bruno") monkeypatch.setenv("KANBANTE_AUTH_PASSWORD", "motdepasse") with TestClient(main.app) as client: r = client.get("/login") assert r.status_code == 200 assert "draco-bar" not in r.text