|
- package service
-
- import (
- "testing"
-
- "github.com/QuantumNous/new-api/setting"
- "github.com/QuantumNous/new-api/setting/ratio_setting"
- "github.com/QuantumNous/new-api/types"
- "github.com/stretchr/testify/require"
- )
-
- func TestGetUserUsableGroupsAppliesSpecialRulesAndKeepsOwnGroup(t *testing.T) {
- originalGroups := setting.UserUsableGroups2JSONString()
- originalSpecial := ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup.MarshalJSONString()
- t.Cleanup(func() {
- require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(originalGroups))
- require.NoError(t, types.LoadFromJsonString(ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup, originalSpecial))
- })
- require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(`{"default":"Default","remove":"Remove"}`))
- require.NoError(t, types.LoadFromJsonString(ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup, `{"staff":{"-:remove":"","+:premium":"Premium"}}`))
-
- groups := GetUserUsableGroups("staff")
-
- require.Equal(t, "Default", groups["default"])
- require.NotContains(t, groups, "remove")
- require.Equal(t, "Premium", groups["premium"])
- require.Equal(t, "用户分组", groups["staff"])
- }
-
- func TestGetUserAutoGroupFiltersConfiguredGroupsByAccess(t *testing.T) {
- originalGroups := setting.UserUsableGroups2JSONString()
- originalAutoGroups := setting.AutoGroups2JsonString()
- t.Cleanup(func() {
- require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(originalGroups))
- require.NoError(t, setting.UpdateAutoGroupsByJsonString(originalAutoGroups))
- })
- require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(`{"default":"Default","vip":"VIP"}`))
- require.NoError(t, setting.UpdateAutoGroupsByJsonString(`["vip","missing","default"]`))
-
- require.Equal(t, []string{"vip", "default"}, GetUserAutoGroup("default"))
- }
|