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) }