feat: separate legacy tariff settings
This commit is contained in:
@@ -230,33 +230,29 @@ SETTINGS_MANIFEST: List[SettingField] = [
|
|||||||
"TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика", "Формат: 10:199,50:799 (ГБ:цена)"
|
"TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика", "Формат: 10:199,50:799 (ГБ:цена)"
|
||||||
),
|
),
|
||||||
SettingField("STARS_TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика (Stars)"),
|
SettingField("STARS_TRAFFIC_PACKAGES", "string", "pricing", "Пакеты трафика (Stars)"),
|
||||||
SettingField(
|
|
||||||
"PAYMENT_METHODS_ORDER",
|
|
||||||
"string",
|
|
||||||
"pricing",
|
|
||||||
"Порядок методов оплаты",
|
|
||||||
"Через запятую, например: severpay,freekassa,yookassa,heleket",
|
|
||||||
),
|
|
||||||
SettingField(
|
SettingField(
|
||||||
"SUBSCRIPTION_PURCHASE_DESCRIPTION_ENABLED",
|
"SUBSCRIPTION_PURCHASE_DESCRIPTION_ENABLED",
|
||||||
"bool",
|
"bool",
|
||||||
"pricing",
|
"payments",
|
||||||
"Показывать описание подписки",
|
"Показывать описание подписки",
|
||||||
"Текст появится перед выбором срока покупки или продления.",
|
"Текст появится перед выбором срока покупки или продления.",
|
||||||
|
subsection="checkout",
|
||||||
),
|
),
|
||||||
SettingField(
|
SettingField(
|
||||||
"SUBSCRIPTION_PURCHASE_DESCRIPTION_RU",
|
"SUBSCRIPTION_PURCHASE_DESCRIPTION_RU",
|
||||||
"text",
|
"text",
|
||||||
"pricing",
|
"payments",
|
||||||
"Описание подписки (RU)",
|
"Описание подписки (RU)",
|
||||||
"Русская версия текста на этапе оплаты.",
|
"Русская версия текста на этапе оплаты.",
|
||||||
|
subsection="checkout",
|
||||||
),
|
),
|
||||||
SettingField(
|
SettingField(
|
||||||
"SUBSCRIPTION_PURCHASE_DESCRIPTION_EN",
|
"SUBSCRIPTION_PURCHASE_DESCRIPTION_EN",
|
||||||
"text",
|
"text",
|
||||||
"pricing",
|
"payments",
|
||||||
"Описание подписки (EN)",
|
"Описание подписки (EN)",
|
||||||
"Английская версия текста на этапе оплаты.",
|
"Английская версия текста на этапе оплаты.",
|
||||||
|
subsection="checkout",
|
||||||
),
|
),
|
||||||
# ─── Payment providers (toggles) ───────────────────────────────
|
# ─── Payment providers (toggles) ───────────────────────────────
|
||||||
# Common
|
# Common
|
||||||
@@ -581,7 +577,7 @@ def manifest_payload() -> List[dict]:
|
|||||||
sections_order = {
|
sections_order = {
|
||||||
"general": 1,
|
"general": 1,
|
||||||
"appearance": 2,
|
"appearance": 2,
|
||||||
"pricing": 3,
|
"pricing": 11,
|
||||||
"payments": 4,
|
"payments": 4,
|
||||||
"trial": 5,
|
"trial": 5,
|
||||||
"referral": 6,
|
"referral": 6,
|
||||||
|
|||||||
@@ -36,6 +36,10 @@ def _manifest_by_key() -> dict[str, dict]:
|
|||||||
return {item["key"]: item for item in manifest_payload()}
|
return {item["key"]: item for item in manifest_payload()}
|
||||||
|
|
||||||
|
|
||||||
|
def _manifest_items() -> list[dict]:
|
||||||
|
return manifest_payload()
|
||||||
|
|
||||||
|
|
||||||
def _locale(language: str) -> dict[str, str]:
|
def _locale(language: str) -> dict[str, str]:
|
||||||
return json.loads((REPO_ROOT / "locales" / f"{language}.json").read_text(encoding="utf-8"))
|
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)
|
messages = _locale(language)
|
||||||
for setting_key in SUBSCRIPTION_PURCHASE_DESCRIPTION_SETTINGS:
|
for setting_key in SUBSCRIPTION_PURCHASE_DESCRIPTION_SETTINGS:
|
||||||
field = manifest[setting_key]
|
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_label_key"] in messages
|
||||||
assert field["i18n_description_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"]
|
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():
|
def test_platega_settings_share_one_admin_subsection():
|
||||||
manifest = _manifest_by_key()
|
manifest = _manifest_by_key()
|
||||||
platega_keys = [
|
platega_keys = [
|
||||||
key
|
key for key in manifest if key.startswith("PLATEGA_") or key.startswith("PAYMENT_PLATEGA_")
|
||||||
for key in manifest
|
|
||||||
if key.startswith("PLATEGA_") or key.startswith("PAYMENT_PLATEGA_")
|
|
||||||
]
|
]
|
||||||
|
|
||||||
assert platega_keys
|
assert platega_keys
|
||||||
|
|||||||
Reference in New Issue
Block a user