You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

42 lines
1.8 KiB

  1. package service
  2. import (
  3. "testing"
  4. "github.com/QuantumNous/new-api/setting"
  5. "github.com/QuantumNous/new-api/setting/ratio_setting"
  6. "github.com/QuantumNous/new-api/types"
  7. "github.com/stretchr/testify/require"
  8. )
  9. func TestGetUserUsableGroupsAppliesSpecialRulesAndKeepsOwnGroup(t *testing.T) {
  10. originalGroups := setting.UserUsableGroups2JSONString()
  11. originalSpecial := ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup.MarshalJSONString()
  12. t.Cleanup(func() {
  13. require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(originalGroups))
  14. require.NoError(t, types.LoadFromJsonString(ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup, originalSpecial))
  15. })
  16. require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(`{"default":"Default","remove":"Remove"}`))
  17. require.NoError(t, types.LoadFromJsonString(ratio_setting.GetGroupRatioSetting().GroupSpecialUsableGroup, `{"staff":{"-:remove":"","+:premium":"Premium"}}`))
  18. groups := GetUserUsableGroups("staff")
  19. require.Equal(t, "Default", groups["default"])
  20. require.NotContains(t, groups, "remove")
  21. require.Equal(t, "Premium", groups["premium"])
  22. require.Equal(t, "用户分组", groups["staff"])
  23. }
  24. func TestGetUserAutoGroupFiltersConfiguredGroupsByAccess(t *testing.T) {
  25. originalGroups := setting.UserUsableGroups2JSONString()
  26. originalAutoGroups := setting.AutoGroups2JsonString()
  27. t.Cleanup(func() {
  28. require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(originalGroups))
  29. require.NoError(t, setting.UpdateAutoGroupsByJsonString(originalAutoGroups))
  30. })
  31. require.NoError(t, setting.UpdateUserUsableGroupsByJSONString(`{"default":"Default","vip":"VIP"}`))
  32. require.NoError(t, setting.UpdateAutoGroupsByJsonString(`["vip","missing","default"]`))
  33. require.Equal(t, []string{"vip", "default"}, GetUserAutoGroup("default"))
  34. }