Files
kanbante/tests/test_barre_v041.py
T

47 lines
1.9 KiB
Python

"""Barre commune v0.4.1 (correctif fusion #125) — re-vendange 0.45.12.
- JS vendangé VERBATIM depuis dracodev-commons, branche
menu-compte-icones-svg-ns-v0-4-1 (PR commons #11),
ui/barre-apps/. Le CSS est inchangé par rapport à la v0.4.0.
- Correctif : en v0.4.0, les icônes du menu compte étaient
créées via document.createElement() — espace de noms HTML,
jamais dessinées par le navigateur (libellés décalés d'un
cran d'icône, aucun glyphe visible en production). La v0.4.1
crée le <svg> et ses primitives via
document.createElementNS() (espace de noms SVG).
"""
import hashlib
from pathlib import Path
R = Path(__file__).resolve().parents[1]
# Empreintes SHA-256 de la source commons
# (Projets/dracodev-commons, ui/barre-apps/ ; CSS : v0.4.0
# inchangé, JS : branche du correctif v0.4.1 @32a729f).
SHA256_CSS_V040 = "d8cf53b2f6700ebc7499d43869d5cae256d1f74636f0113bffb174b8a6bd06ec"
SHA256_JS_V041 = "82c4940e8e115ed71d95f7c0dcdc906b93e49855580cc0fec7a1ccba34f85a42"
def _sha256(chemin):
return hashlib.sha256((R / chemin).read_bytes()).hexdigest()
def test_barre_css_js_verbatim_commons_v041():
assert _sha256("static/css/draco-barre.css") == SHA256_CSS_V040
assert _sha256("static/js/draco-barre.js") == SHA256_JS_V041
def test_js_icones_espace_de_noms_svg():
js = (R / "static/js/draco-barre.js").read_text(encoding="utf-8")
assert "MENU_ICONES" in js
# Le correctif : création dans l'espace de noms SVG…
assert 'createElementNS(SVG_NS, "svg")' in js
assert "createElementNS(SVG_NS, spec[0])" in js
# …et plus aucune création HTML du svg ou des primitives.
assert 'createElement("svg")' not in js
assert "createElement(spec[0])" not in js
# Comportements conservés.
assert 'hub: "https://hub.dracodev.net/"' in js
assert '"profil", "Profil"' in js
assert 'data-compte-act", "deconnexion"' in js