Files
kanbante/tests/test_barre_v040.py
T

58 lines
2.4 KiB
Python

"""Barre commune v0.4.0 (HUB-11, fusion #125) — re-vendange 0.45.11.
- CSS/JS vendangés VERBATIM depuis dracodev-commons, branche
menu-compte-icones-v0-4-0 (PR commons #10), ui/barre-apps/.
- Menu compte : chaque item (Télécharger, À Propos, Aides,
Profil, Déconnexion) porte une icône SVG monoline construite
en DOM (contour, currentColor, sans remplissage), dans le
style des icônes du rail de la console — aucun emoji.
L'en-tête d'identité reste sans icône ; les liens Hub et le
relais « Déconnexion » sont inchangés depuis la v0.3.0.
"""
import hashlib
from pathlib import Path
R = Path(__file__).resolve().parents[1]
# Empreintes SHA-256 de la source commons v0.4.0
# (Projets/dracodev-commons, ui/barre-apps/, branche
# menu-compte-icones-v0-4-0 @e8ca99a).
SHA256_CSS_V040 = "d8cf53b2f6700ebc7499d43869d5cae256d1f74636f0113bffb174b8a6bd06ec"
SHA256_JS_V040 = "36cc24b2bfea757633a7cbcfded54fb73405d9f6fdbde1b4a8fb8df7ae5d39a0"
def _sha256(chemin):
return hashlib.sha256((R / chemin).read_bytes()).hexdigest()
def test_barre_css_js_verbatim_commons_v040():
# Remplacé en 0.45.12 : la re-vendange v0.4.1 (correctif
# fusion #125) supersède l'empreinte JS v0.4.0 — l'empreinte
# JS courante est verrouillée par tests/test_barre_v041.py.
# Le CSS, inchangé en v0.4.1, garde son empreinte v0.4.0 ;
# on garde ici la preuve que le JS a bien quitté la v0.4.0.
assert _sha256("static/css/draco-barre.css") == SHA256_CSS_V040
assert _sha256("static/js/draco-barre.js") != SHA256_JS_V040
def test_js_icones_monoline_menu_compte():
js = (R / "static/js/draco-barre.js").read_text(encoding="utf-8")
assert "MENU_ICONES" in js
for nom in ("telecharger", "a-propos", "aide", "profil", "deconnexion"):
assert f'"{nom}"' in js
assert "draco-menu-icone" in js
assert 'setAttribute("stroke", "currentColor")' in js
assert 'setAttribute("fill", "none")' in js
# Comportements v0.3.0 conservés.
assert 'hub: "https://hub.dracodev.net/"' in js
assert '"profil", "Profil"' in js
assert 'data-compte-act", "deconnexion"' in js
def test_css_icone_menu_compte():
css = (R / "static/css/draco-barre.css").read_text(encoding="utf-8")
assert ".draco-menu-icone" in css
bloc = css.split(".draco-menu-icone {", 1)[1].split("}", 1)[0]
assert "width: 18px" in bloc
assert "var(--ink-2)" in bloc