fix: Fix trial settings persistence
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user