test: adapter les tests DataTable historiques à la migration AG Grid de /tableau (#41)

This commit is contained in:
Colin Maudry
2026-07-10 14:20:27 +02:00
parent c81533aa8e
commit e59e2e50b3
2 changed files with 24 additions and 6 deletions
+14 -3
View File
@@ -73,7 +73,13 @@ def test_002_filter_persistence(dash_duo: DashComposite):
)
return _filter_input_in_view(dash_duo, filter_input_selector)
for page in ["tableau", "acheteurs/123", "titulaires/345"]:
# /tableau utilise désormais AG Grid (dash-ag-grid) au lieu de dash_table.DataTable ;
# la persistance de ses filtres/colonnes est couverte par persistence=True et
# persisted_props=["filterModel", "columnState"] configurés dans la fabrique
# ag_grid() de src/figures.py, et a été vérifiée manuellement via un navigateur
# réel (Task 12 du plan #41). Une couverture Selenium dédiée à AG Grid pourrait
# être ajoutée ultérieurement.
for page in ["acheteurs/123", "titulaires/345"]:
filter_input = open_page_and_check_filter_input()
filter_input.send_keys("11") # valeur quelconque, on teste la persistance
filter_input.send_keys(Keys.ENTER)
@@ -347,13 +353,18 @@ def test_014_get_distance_histogram_all_nulls():
assert isinstance(result, dcc.Graph)
def test_015_tableau_filter_date(dash_duo: DashComposite):
def test_015_org_pages_filter_date(dash_duo: DashComposite):
from src.app import app
dash_duo.start_server(app)
dash_duo.wait_for_text_to_equal(".logo > h1", "colibre", timeout=4)
for page in ["tableau", "acheteurs/123", "titulaires/345"]:
# /tableau utilise désormais AG Grid ; le filtrage de sa colonne date est
# couvert par les tests unitaires de compilation SQL dans
# tests/test_query_ast.py (ex. test_date_range_uses_between) et a été
# vérifié manuellement (Task 12 du plan #41). Une couverture Selenium
# dédiée au filtre de date AG Grid pourrait être ajoutée ultérieurement.
for page in ["acheteurs/123", "titulaires/345"]:
dash_duo.wait_for_page(f"{dash_duo.server_url}/{page}")
filter_input = '.marches_table th[data-dash-column="dateNotification"] input'
filter_cell_result = '.marches_table td[data-dash-column="dateNotification"] p'
+10 -3
View File
@@ -1,12 +1,19 @@
from dash.testing.composite import DashComposite
def test_tableau_hscroll_bar_present(dash_duo: DashComposite):
"""La barre de défilement est injectée et le conteneur scroll horizontalement."""
def test_marches_table_hscroll_bar_present(dash_duo: DashComposite):
"""La barre de défilement est injectée et le conteneur scroll horizontalement.
Testé via /acheteurs/123 : depuis la migration de /tableau vers AG Grid
(qui gère son propre défilement horizontal nativement), cette page-ci ne
rend plus de dash_table.DataTable. .marches_table (et table_hscroll.js)
reste utilisé par acheteur.py, observatoire.py et titulaire.py, donc ce
comportement reste couvert via une de ces pages.
"""
from src.app import app
dash_duo.start_server(app)
dash_duo.wait_for_page(f"{dash_duo.server_url}/tableau")
dash_duo.wait_for_page(f"{dash_duo.server_url}/acheteurs/123")
dash_duo.wait_for_element(".marches_table", timeout=20)
# Barre injectée par table_hscroll.js
dash_duo.wait_for_element(".marches_table .dt-hscroll", timeout=10)