feat(gui): câbler les 7 toggles catégories au moteur (P1-2)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -55,10 +55,26 @@ def test_config_interaction_contract_prebuilds_panels_and_mask_editor():
|
||||
]
|
||||
|
||||
|
||||
def test_detection_options_fields_match_category_fields():
|
||||
"""Garde-fou anti-dérive : les champs déclarés dans _DETECTION_OPTIONS doivent
|
||||
rester alignés (mêmes champs ET même ordre) sur CATEGORY_FIELDS, sinon un
|
||||
toggle pointerait vers un attribut ConfigState inexistant (AttributeError au
|
||||
lancement de la GUI au lieu d'un échec de test)."""
|
||||
from gui_v6.config_state import CATEGORY_FIELDS, ConfigState
|
||||
|
||||
fields = [field for _l, _h, field in _DETECTION_OPTIONS]
|
||||
assert fields == list(CATEGORY_FIELDS) # mêmes champs ET même ordre (ordre UI = ordre catégories)
|
||||
for f in fields: # chacun est bien un booléen réel de ConfigState
|
||||
assert isinstance(getattr(ConfigState(), f), bool)
|
||||
|
||||
|
||||
def test_detection_rows_are_readable_in_light_theme():
|
||||
"""Retour Dom : les sous-labels de la colonne détection doivent rester lisibles."""
|
||||
assert ("Noms et prénoms", "Annuaire + IA") in _DETECTION_OPTIONS
|
||||
assert ("Noms et prénoms", "Bases de données + IA") not in _DETECTION_OPTIONS
|
||||
# Chaque ligne est désormais (libellé, aide, champ ConfigState) ; on ne
|
||||
# vérifie ici que le couple (libellé, aide) reste lisible.
|
||||
label_hint = [(label, hint) for label, hint, _field in _DETECTION_OPTIONS]
|
||||
assert ("Noms et prénoms", "Annuaire + IA") in label_hint
|
||||
assert ("Noms et prénoms", "Bases de données + IA") not in label_hint
|
||||
assert MINI_TOGGLE_HEIGHT >= 44
|
||||
assert MINI_TOGGLE_LABEL_FONT_SIZE >= 12
|
||||
assert MINI_TOGGLE_HINT_FONT_SIZE >= 11
|
||||
|
||||
Reference in New Issue
Block a user