fix: Fix trial settings persistence
This commit is contained in:
@@ -283,12 +283,20 @@ SETTINGS_MANIFEST: List[SettingField] = [
|
|||||||
subsection="common",
|
subsection="common",
|
||||||
),
|
),
|
||||||
# ─── Trial ─────────────────────────────────────────────────────
|
# ─── Trial ─────────────────────────────────────────────────────
|
||||||
SettingField("TRIAL_ENABLED", "bool", "pricing", "Триал включён", subsection="trial"),
|
SettingField(
|
||||||
|
"TRIAL_ENABLED",
|
||||||
|
"bool",
|
||||||
|
"pricing",
|
||||||
|
"Триал включён",
|
||||||
|
optional=False,
|
||||||
|
subsection="trial",
|
||||||
|
),
|
||||||
SettingField(
|
SettingField(
|
||||||
"TRIAL_DURATION_DAYS",
|
"TRIAL_DURATION_DAYS",
|
||||||
"int",
|
"int",
|
||||||
"pricing",
|
"pricing",
|
||||||
"Длительность триала (дней)",
|
"Длительность триала (дней)",
|
||||||
|
optional=False,
|
||||||
min=0,
|
min=0,
|
||||||
subsection="trial",
|
subsection="trial",
|
||||||
),
|
),
|
||||||
@@ -297,6 +305,7 @@ SETTINGS_MANIFEST: List[SettingField] = [
|
|||||||
"float",
|
"float",
|
||||||
"pricing",
|
"pricing",
|
||||||
"Лимит трафика триала (ГБ)",
|
"Лимит трафика триала (ГБ)",
|
||||||
|
optional=False,
|
||||||
min=0,
|
min=0,
|
||||||
subsection="trial",
|
subsection="trial",
|
||||||
),
|
),
|
||||||
@@ -305,6 +314,7 @@ SETTINGS_MANIFEST: List[SettingField] = [
|
|||||||
"string",
|
"string",
|
||||||
"pricing",
|
"pricing",
|
||||||
"Стратегия сброса трафика триала",
|
"Стратегия сброса трафика триала",
|
||||||
|
optional=False,
|
||||||
subsection="trial",
|
subsection="trial",
|
||||||
),
|
),
|
||||||
SettingField(
|
SettingField(
|
||||||
|
|||||||
@@ -120,10 +120,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function boolValue(key, dirty = settingsDirty, fieldMap = settingsFieldMap) {
|
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) {
|
function setSetting(key, value) {
|
||||||
|
if (!settingsFieldMap.has(key)) return;
|
||||||
settingsStore.markDirty(key, value);
|
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"), "")
|
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():
|
def test_payment_provider_settings_include_webhook_metadata():
|
||||||
manifest = _manifest_by_key()
|
manifest = _manifest_by_key()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user