diff --git a/backend/bot/app/web/admin_settings_manifest.py b/backend/bot/app/web/admin_settings_manifest.py index fc7c0c6..a3aa1ee 100644 --- a/backend/bot/app/web/admin_settings_manifest.py +++ b/backend/bot/app/web/admin_settings_manifest.py @@ -230,33 +230,29 @@ SETTINGS_MANIFEST: List[SettingField] = [ "TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика", "Формат: 10:199,50:799 (ГБ:цена)" ), SettingField("STARS_TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика (Stars)"), - SettingField( - "PAYMENT_METHODS_ORDER", - "string", - "pricing", - "Порядок методов оплаты", - "Через запятую, например: severpay,freekassa,yookassa,heleket", - ), SettingField( "SUBSCRIPTION_PURCHASE_DESCRIPTION_ENABLED", "bool", - "pricing", + "payments", "Показывать описание подписки", "Текст появится перед выбором срока покупки или продления.", + subsection="checkout", ), SettingField( "SUBSCRIPTION_PURCHASE_DESCRIPTION_RU", "text", - "pricing", + "payments", "Описание подписки (RU)", "Русская версия текста на этапе оплаты.", + subsection="checkout", ), SettingField( "SUBSCRIPTION_PURCHASE_DESCRIPTION_EN", "text", - "pricing", + "payments", "Описание подписки (EN)", "Английская версия текста на этапе оплаты.", + subsection="checkout", ), # ─── Payment providers (toggles) ─────────────────────────────── # Common @@ -581,7 +577,7 @@ def manifest_payload() -> List[dict]: sections_order = { "general": 1, "appearance": 2, - "pricing": 3, + "pricing": 11, "payments": 4, "trial": 5, "referral": 6, diff --git a/tests/test_admin_settings_manifest_i18n.py b/tests/test_admin_settings_manifest_i18n.py index 2760da6..e0ff7b1 100644 --- a/tests/test_admin_settings_manifest_i18n.py +++ b/tests/test_admin_settings_manifest_i18n.py @@ -36,6 +36,10 @@ def _manifest_by_key() -> dict[str, dict]: return {item["key"]: item for item in manifest_payload()} +def _manifest_items() -> list[dict]: + return manifest_payload() + + def _locale(language: str) -> dict[str, str]: return json.loads((REPO_ROOT / "locales" / f"{language}.json").read_text(encoding="utf-8")) @@ -74,7 +78,8 @@ def test_subscription_purchase_description_settings_i18n_keys_exist(): messages = _locale(language) for setting_key in SUBSCRIPTION_PURCHASE_DESCRIPTION_SETTINGS: field = manifest[setting_key] - assert field["section"] == "pricing" + assert field["section"] == "payments" + assert field["subsection"] == "checkout" assert field["i18n_label_key"] in messages assert field["i18n_description_key"] in messages @@ -106,12 +111,22 @@ def test_payment_provider_settings_include_webhook_metadata(): assert "webhook_path" not in manifest["PAYMENT_STARS_WEBAPP_LABEL_RU"] +def test_legacy_tariff_settings_are_separated_from_payment_settings(): + manifest = _manifest_by_key() + payment_method_fields = [ + item for item in _manifest_items() if item["key"] == "PAYMENT_METHODS_ORDER" + ] + + assert len(payment_method_fields) == 1 + assert payment_method_fields[0]["section"] == "payments" + assert manifest["MONTH_1_ENABLED"]["section"] == "pricing" + assert manifest["MONTH_1_ENABLED"]["section_order"] == 11 + + def test_platega_settings_share_one_admin_subsection(): manifest = _manifest_by_key() platega_keys = [ - key - for key in manifest - if key.startswith("PLATEGA_") or key.startswith("PAYMENT_PLATEGA_") + key for key in manifest if key.startswith("PLATEGA_") or key.startswith("PAYMENT_PLATEGA_") ] assert platega_keys