mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-05 00:55:56 +00:00
66 lines
1.9 KiB
Go
66 lines
1.9 KiB
Go
package setting
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/QuantumNous/new-api/common"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func setupTaskPluginDisabledFactoryKeysTest(t *testing.T) {
|
|
t.Helper()
|
|
originalMap := common.OptionMap
|
|
common.OptionMapRWMutex.Lock()
|
|
common.OptionMap = map[string]string{}
|
|
common.OptionMapRWMutex.Unlock()
|
|
t.Cleanup(func() {
|
|
common.OptionMapRWMutex.Lock()
|
|
common.OptionMap = originalMap
|
|
common.OptionMapRWMutex.Unlock()
|
|
})
|
|
}
|
|
|
|
func TestTaskPluginDisabledFactoryKeysRoundTripAndDedupe(t *testing.T) {
|
|
setupTaskPluginDisabledFactoryKeysTest(t)
|
|
|
|
assert.Empty(t, GetTaskPluginDisabledFactoryKeys())
|
|
assert.False(t, IsTaskPluginFactoryDisabled("kling"))
|
|
|
|
require.NoError(t, SetTaskPluginDisabledFactoryKeysOption([]string{"kling", "sora", "kling", " hailuo "}))
|
|
assert.Equal(t, []string{"hailuo", "kling", "sora"}, GetTaskPluginDisabledFactoryKeys())
|
|
assert.Equal(t, `["hailuo","kling","sora"]`, common.OptionMap[TaskPluginDisabledFactoryKeysKey])
|
|
assert.True(t, IsTaskPluginFactoryDisabled("kling"))
|
|
assert.True(t, IsTaskPluginFactoryDisabled("hailuo"))
|
|
assert.False(t, IsTaskPluginFactoryDisabled("google"))
|
|
}
|
|
|
|
func TestTaskPluginDisabledFactoryKeysBadJSONReturnsEmpty(t *testing.T) {
|
|
setupTaskPluginDisabledFactoryKeysTest(t)
|
|
|
|
for _, testCase := range []struct {
|
|
name string
|
|
raw string
|
|
}{
|
|
{name: "absent", raw: ""},
|
|
{name: "null", raw: "null"},
|
|
{name: "object", raw: "{}"},
|
|
{name: "number", raw: "1"},
|
|
{name: "truncated", raw: `["kling"`},
|
|
{name: "not json", raw: "kling"},
|
|
} {
|
|
t.Run(testCase.name, func(t *testing.T) {
|
|
common.OptionMapRWMutex.Lock()
|
|
if testCase.raw == "" {
|
|
delete(common.OptionMap, TaskPluginDisabledFactoryKeysKey)
|
|
} else {
|
|
common.OptionMap[TaskPluginDisabledFactoryKeysKey] = testCase.raw
|
|
}
|
|
common.OptionMapRWMutex.Unlock()
|
|
|
|
assert.Empty(t, GetTaskPluginDisabledFactoryKeys())
|
|
assert.False(t, IsTaskPluginFactoryDisabled("kling"))
|
|
})
|
|
}
|
|
}
|