fix: Fix trial settings persistence

This commit is contained in:
3252a8
2026-05-28 22:48:48 +03:00
parent bea62d75a9
commit 1c1ef06e29
3 changed files with 28 additions and 2 deletions
+11 -1
View File
@@ -283,12 +283,20 @@ SETTINGS_MANIFEST: List[SettingField] = [
subsection="common",
),
# ─── Trial ─────────────────────────────────────────────────────
SettingField("TRIAL_ENABLED", "bool", "pricing", "Триал включён", subsection="trial"),
SettingField(
"TRIAL_ENABLED",
"bool",
"pricing",
"Триал включён",
optional=False,
subsection="trial",
),
SettingField(
"TRIAL_DURATION_DAYS",
"int",
"pricing",
"Длительность триала (дней)",
optional=False,
min=0,
subsection="trial",
),
@@ -297,6 +305,7 @@ SETTINGS_MANIFEST: List[SettingField] = [
"float",
"pricing",
"Лимит трафика триала (ГБ)",
optional=False,
min=0,
subsection="trial",
),
@@ -305,6 +314,7 @@ SETTINGS_MANIFEST: List[SettingField] = [
"string",
"pricing",
"Стратегия сброса трафика триала",
optional=False,
subsection="trial",
),
SettingField(
@@ -120,10 +120,15 @@
}
function boolValue(key, dirty = settingsDirty, fieldMap = settingsFieldMap) {
return Boolean(valueForKey(key, dirty, fieldMap));
const value = valueForKey(key, dirty, fieldMap);
if (typeof value === "string") {
return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
}
return Boolean(value);
}
function setSetting(key, value) {
if (!settingsFieldMap.has(key)) return;
settingsStore.markDirty(key, value);
}
@@ -207,6 +207,17 @@ def test_backup_required_numeric_settings_reject_empty_values():
coerce_value(get_field_by_key("BACKUP_INTERVAL_SECONDS"), "")
def test_trial_required_settings_reject_empty_values():
for key in (
"TRIAL_ENABLED",
"TRIAL_DURATION_DAYS",
"TRIAL_TRAFFIC_LIMIT_GB",
"TRIAL_TRAFFIC_STRATEGY",
):
with pytest.raises(ValueError):
coerce_value(get_field_by_key(key), "")
def test_payment_provider_settings_include_webhook_metadata():
manifest = _manifest_by_key()