Files
new-api-custom/model/token_group_pool_test.go
cneicy ceddfd3d6b feat: sync deployed v1.0.0-rc.38-custom.42
Sync production source including routing, billing, Astra detection and public uptime. Update custom build instructions and license packaging.
2026-09-26 04:49:11 +08:00

35 lines
1.1 KiB
Go

package model
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestGetGroupPoolParsesLegacyNamesAndEntries(t *testing.T) {
legacy := &Token{AutoGroups: `["vip","pro"]`}
pool, err := legacy.GetGroupPool()
require.NoError(t, err)
require.Equal(t, []TokenGroupEntry{{Group: "vip", Priority: 0}, {Group: "pro", Priority: 1}}, pool)
names, err := legacy.GetAutoGroups()
require.NoError(t, err)
require.Equal(t, []string{"vip", "pro"}, names)
explicit := &Token{AutoGroups: `[{"group":"vip","priority":2},{"group":"pro","priority":1}]`}
pool, err = explicit.GetGroupPool()
require.NoError(t, err)
require.Equal(t, []TokenGroupEntry{{Group: "vip", Priority: 2}, {Group: "pro", Priority: 1}}, pool)
}
func TestSetGroupPoolRoundTrips(t *testing.T) {
token := &Token{}
require.NoError(t, token.SetGroupPool([]TokenGroupEntry{{Group: "vip", Priority: 1}}))
pool, err := token.GetGroupPool()
require.NoError(t, err)
require.Equal(t, []TokenGroupEntry{{Group: "vip", Priority: 1}}, pool)
require.NoError(t, token.SetGroupPool(nil))
require.Empty(t, token.AutoGroups)
}