fix(tableau): vues sauvegardées pré-migration + double comptage track_search (#41)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
import src.app # noqa: F401 # instancie l'app → register_page() des pages
|
||||
from src.pages.tableau import get_rows_tableau
|
||||
from src.utils.grid import export_dataframe, fetch_grid_page, grid_column_defs
|
||||
|
||||
|
||||
@@ -51,3 +55,16 @@ def test_export_dataframe_applies_filter():
|
||||
fm = {"objet": {"filterType": "text", "type": "contains", "filter": "zzzzzznope"}}
|
||||
df = export_dataframe(fm, None, hidden_columns=[])
|
||||
assert df.height == 0
|
||||
|
||||
|
||||
def test_get_rows_tableau_tracks_search_once_per_filter_not_per_scroll_block():
|
||||
"""Régression revue finale #41 : AG Grid envoie une getRowsRequest par bloc
|
||||
de défilement infini, avec le même filterModel tant que le filtre ne
|
||||
change pas. track_search ne doit être appelé qu'une fois par filtre (au
|
||||
premier bloc, startRow == 0), pas une fois par bloc défilé."""
|
||||
fm = {"objet": {"filterType": "text", "type": "contains", "filter": "route"}}
|
||||
with patch("src.pages.tableau.track_search") as mocked:
|
||||
get_rows_tableau({"filterModel": fm, "startRow": 0, "endRow": 100})
|
||||
get_rows_tableau({"filterModel": fm, "startRow": 100, "endRow": 200})
|
||||
get_rows_tableau({"filterModel": fm, "startRow": 200, "endRow": 300})
|
||||
mocked.assert_called_once()
|
||||
|
||||
Reference in New Issue
Block a user