"""Anti-dérive D8 (Plan 3) : l'installeur GUI doit fermer l'app avant MAJ.

AppMutex DOIT valoir gui_v6.single_instance.APP_MUTEX_NAME (P0-7) — le commentaire
de single_instance.py:15 exige la synchro. CloseApplications ferme l'app qui
verrouille l'EXE pendant l'upgrade en place (AppId fixe).
"""
from pathlib import Path

from gui_v6.single_instance import APP_MUTEX_NAME

ISS = Path(__file__).resolve().parents[2] / "installer" / "Anonymisation.iss"


def test_appmutex_synchronise_avec_single_instance():
    text = ISS.read_text(encoding="utf-8")
    assert f"AppMutex={APP_MUTEX_NAME}" in text


def test_closeapplications_actif():
    text = ISS.read_text(encoding="utf-8")
    assert "CloseApplications=yes" in text


def test_appid_fixe_inchange():
    # L'upgrade en place repose sur l'AppId stable — ne jamais le régénérer.
    text = ISS.read_text(encoding="utf-8")
    assert "AppId={{6D11E4F8-26D8-4CFB-9F19-5A81E0637F56}" in text
