import pytest @pytest.fixture(autouse=True) def _plan_env(monkeypatch): monkeypatch.setenv("FRISBII_PLAN_SIMPLE", "plan_simple") monkeypatch.setenv("FRISBII_PLAN_SOUTIEN", "plan_soutien") def test_plan_cards_informative_no_button(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page._plan_cards(trial_for=lambda key: 2)) assert "Abonnement" in text assert "Abonnement de soutien" in text assert "2 jours d'essai gratuit" in text assert "S'abonner" not in text def test_subscribe_button_visitor_goes_to_inscription(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page._subscribe_button(False, False, False)) assert "Je m'abonne" in text assert "href='/inscription'" in text def test_subscribe_button_authenticated_no_sub_goes_to_mes_infos(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page._subscribe_button(True, False, False)) assert "href='/compte/abonnement/mes-infos'" in text def test_subscribe_button_active_sub_manages(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page._subscribe_button(True, True, False)) assert "Gérer mon abonnement" in text assert "href='/compte/abonnement'" in text def test_subscribe_button_disabled_when_tous_abonnes(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page._subscribe_button(False, False, True)) assert "disabled" in text def test_cgu_terms_trimmed_of_features_section(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str(page.subscription_terms) assert "Fonctionnalités incluses" not in text assert "Résiliation" in text assert "Tarifs" in text def test_plan_card_ttc_price_for_current_real_prices(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page simple = str( page._plan_card( { "label": "Abonnement", "prix_ht": 20, "description": "desc", }, None, ) ) assert "24 € TTC" in simple soutien = str( page._plan_card( { "label": "Abonnement de soutien", "prix_ht": 50, "description": "desc", }, None, ) ) assert "60 € TTC" in soutien def test_plan_card_ttc_price_avoids_float_artifacts(): from src.app import app # noqa: F401 from src.pages.a_propos import abonnement as page text = str( page._plan_card( { "label": "Abonnement non-rond", "prix_ht": 24, "description": "desc", }, None, ) ) assert "28.8 € TTC" in text assert "28.799999999999997" not in text