"""Garde-fou : l'onglet Configuration doit couvrir les sections de la maquette V6."""

from __future__ import annotations

import pytest

pytest.importorskip("customtkinter")

from gui_v6.tabs.tab_config import (
    CONFIG_INTERACTION_CONTRACT,
    CONFIG_MOCKUP_SECTIONS,
    MINI_TOGGLE_HEIGHT,
    MINI_TOGGLE_HINT_FONT_SIZE,
    MINI_TOGGLE_LABEL_FONT_SIZE,
    _DETECTION_OPTIONS,
)


def test_config_mockup_sections_cover_admin_surface():
    assert CONFIG_MOCKUP_SECTIONS == {
        "reglages": [
            "Profil d'anonymisation",
            "Moteurs NER",
            "Données à détecter",
            "Termes à toujours conserver",
            "Termes à toujours masquer",
            "Masque manuel obligatoire",
            "Template de masque manuel",
        ],
        "masquage": [
            "Couleur de masquage (PDF)",
            "Style des marqueurs (texte)",
            "Épaisseur du masque",
            "Codes de remplacement",
            "Masques de zones fixes",
            "Éditeur interactif de masques",
        ],
        "partage": ["Exporter la configuration", "Importer une configuration"],
        "regles": ["Règles actives", "Testeur de règle"],
    }


def test_config_interaction_contract_prebuilds_panels_and_mask_editor():
    assert CONFIG_INTERACTION_CONTRACT["subtabs"] == "prebuilt_panels"
    assert CONFIG_INTERACTION_CONTRACT["reglages_columns"] == 3
    assert CONFIG_INTERACTION_CONTRACT["mask_editor"] == [
        "open_pdf",
        "draw_rectangle",
        "delete_rectangle_on_click",
        "zoom",
        "save_template_json",
        "load_template_json_or_yaml",
        "clear_page",
        "apply_template_selection",
    ]


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
    assert MINI_TOGGLE_HEIGHT >= 44
    assert MINI_TOGGLE_LABEL_FONT_SIZE >= 12
    assert MINI_TOGGLE_HINT_FONT_SIZE >= 11
