Sync production source including routing, billing, Astra detection and public uptime. Update custom build instructions and license packaging.
35 lines
1.1 KiB
Go
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)
|
|
}
|