Files
new-api-custom/model/token_group_pool_test.go
T
cneicy a5f7b8e586
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Failing after 1m40s
Release (Linux, macOS, Windows) / Linux Release (push) Failing after 42m16s
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Canceled after 0s
Release (Linux, macOS, Windows) / macOS Release (push) Canceled after 0s
Release (Linux, macOS, Windows) / Windows Release (push) Canceled after 0s
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Canceled after 0s
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)
}