|
- package model
-
- import (
- "testing"
-
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/setting"
- "github.com/QuantumNous/new-api/setting/operation_setting"
- "github.com/stretchr/testify/require"
- )
-
- func TestUpdateOptionMapSynchronizesBooleanAndNumericRuntimeSettings(t *testing.T) {
- oldTaskEnabled := common.TaskEnabled
- oldPrice := operation_setting.Price
- oldOptionMap := common.OptionMap
- common.OptionMap = make(map[string]string)
- t.Cleanup(func() {
- common.TaskEnabled = oldTaskEnabled
- operation_setting.Price = oldPrice
- common.OptionMap = oldOptionMap
- })
-
- require.NoError(t, updateOptionMap("TaskEnabled", "false"))
- require.False(t, common.TaskEnabled)
- require.Equal(t, "false", common.OptionMap["TaskEnabled"])
-
- require.NoError(t, updateOptionMap("Price", "2.5"))
- require.Equal(t, 2.5, operation_setting.Price)
- }
-
- func TestUpdateOptionMapRejectsInvalidStructuredSettingsWithoutReplacingExistingValue(t *testing.T) {
- oldOptionMap := common.OptionMap
- common.OptionMap = make(map[string]string)
- oldAutoGroups := setting.AutoGroups2JsonString()
- t.Cleanup(func() {
- common.OptionMap = oldOptionMap
- require.NoError(t, setting.UpdateAutoGroupsByJsonString(oldAutoGroups))
- })
- require.NoError(t, setting.UpdateAutoGroupsByJsonString(`["default"]`))
-
- err := updateOptionMap("AutoGroups", "not-json")
-
- require.Error(t, err)
- require.Equal(t, []string{"default"}, setting.GetAutoGroups())
- }
|