f0a891b73f
La barre des vues sauvegardées restait masquée pour les non-abonnés via un style inline display:none — inopérant car .d-inline-flex est display:inline-flex !important, la barre était donc toujours visible. La barre reste désormais visible pour tous ; « Sauvegarder la vue » et « Mes vues » sont grisés et désactivés (disabled) pour les non-abonnés. Le gating serveur de save_view (prepare_view_to_save) reste inchangé.
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
"""Régression : pour un visiteur non abonné, la barre des vues sauvegardées
|
|
reste visible, mais « Sauvegarder la vue » et « Mes vues » sont grisés et
|
|
désactivés (le gating serveur de save_view reste par ailleurs en place).
|
|
"""
|
|
|
|
import src.app # noqa: F401 # instancie l'app → register_page()
|
|
|
|
|
|
def test_controls_disabled_for_anonymous_visitor(dash_duo):
|
|
from src.app import app
|
|
|
|
dash_duo.start_server(app)
|
|
dash_duo.wait_for_text_to_equal(".logo > h1", "colibre", timeout=6)
|
|
dash_duo.wait_for_page(dash_duo.server_url + "/tableau")
|
|
|
|
# La barre est visible pour tous.
|
|
bar = dash_duo.wait_for_element("#saved-views-bar", timeout=10)
|
|
assert bar.value_of_css_property("display") != "none"
|
|
|
|
# « Sauvegarder la vue » est désactivé (donc grisé) pour un anonyme.
|
|
save_btn = dash_duo.find_element("#btn-save-view")
|
|
assert save_btn.get_attribute("disabled") is not None
|
|
|
|
# « Mes vues » (le bouton toggle du DropdownMenu) est désactivé aussi.
|
|
menu_toggle = dash_duo.find_element("#saved-views-menu .dropdown-toggle")
|
|
disabled_attr = menu_toggle.get_attribute("disabled")
|
|
has_disabled_class = "disabled" in (menu_toggle.get_attribute("class") or "")
|
|
assert disabled_attr is not None or has_disabled_class
|