Test non-regression : aucun splash au demarrage, boot JS et indicateurs internes intacts
CI / lint (pull_request) Failing after 0s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
CI / security (pull_request) Failing after 0s

This commit is contained in:
2026-10-28 16:44:13 -04:00
parent bfe0c75106
commit 483af904af
+75
View File
@@ -0,0 +1,75 @@
"""Tests — démarrage ObsiGate sans écran de chargement plein écran.
Le splash (``#boot-splash`` dans ``frontend/index.html`` : icône
livre, titre, spinner, « Démarrage… ») masquait tout le reste de la
page via ``body:not(.app-booted) > * { display: none !important }``
jusqu'au signal de ``frontend/js/app.js`` (ou un repli à 10 s).
Les autres applications (TikTak, Kanbante, Flowdeck, console Spark)
n'affichent aucun splash de ce type au démarrage : le contenu y
apparaît dès qu'il est prêt. Le retrait supprime donc l'écran, son
CSS de masquage, son script de pilotage et le signal côté ``app.js``,
sans toucher aux indicateurs internes aux vues ni à l'écran de
connexion.
"""
from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
FRONTEND = ROOT / "frontend"
MARQUEURS_SPLASH = (
"boot-splash",
"app-booted",
"__OBSIGATE_BOOTED",
"__obsigateBootReady",
"__setBootStatus",
"bs-card",
"bs-logo",
"bs-title",
"bs-spinner",
"bs-status",
"bs-spin",
"Démarrage…",
)
def _index() -> str:
return (FRONTEND / "index.html").read_text(encoding="utf-8")
def _app_js() -> str:
return (FRONTEND / "js" / "app.js").read_text(encoding="utf-8")
def test_aucun_marqueur_splash():
index = _index()
app_js = _app_js()
for marqueur in MARQUEURS_SPLASH:
assert marqueur not in index, f"{marqueur} encore dans index.html"
assert marqueur not in app_js, f"{marqueur} encore dans js/app.js"
def test_pas_de_masquage_global_au_demarrage():
"""Aucune règle ne cache tout le <body> en attendant un signal :
sans elle, un chargement lent ne peut plus donner un écran blanc
bloqué."""
index = _index()
assert "body:not(.app-booted)" not in index
assert "display: none !important" not in index
def test_boot_js_conserve_et_indicateurs_internes_intacts():
"""Le démarrage SPA reste branché ; seuls le splash et son signal
disparaissent. L'écran de connexion et la barre de progression
de recherche (indicateurs internes aux vues) ne sont PAS visés."""
app_js = _app_js()
assert 'document.addEventListener("DOMContentLoaded"' in app_js
assert "await init();" in app_js
assert "Sync.init();" in app_js
assert "populateVersions" in app_js
index = _index()
assert 'id="login-screen"' in index
assert 'id="search-progress-bar"' in index
assert 'id="app"' in index