chore: load 'assign_default' value from legacy value (#17428)

If this value was set before v2.19.0, then assign_default was in a json
field that would not match. And it would default to `false`. This
corrects that.
This commit is contained in:
Steven Masley
2025-04-16 15:55:37 -05:00
committed by GitHub
parent c4d3dd2791
commit 2e5cd299f2
2 changed files with 79 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package idpsync_test
import (
"database/sql"
"fmt"
"testing"
"github.com/golang-jwt/jwt/v4"
@ -19,6 +20,73 @@ import (
"github.com/coder/coder/v2/testutil"
)
func TestFromLegacySettings(t *testing.T) {
t.Parallel()
legacy := func(assignDefault bool) string {
return fmt.Sprintf(`{
"Field":"groups",
"Mapping":{
"engineering":[
"10b2bd19-f5ca-4905-919f-bf02e95e3b6a"
]
},
"AssignDefault":%t
}`, assignDefault)
}
t.Run("AssignDefault,True", func(t *testing.T) {
t.Parallel()
var settings idpsync.OrganizationSyncSettings
settings.AssignDefault = true
err := settings.Set(legacy(true))
require.NoError(t, err)
require.Equal(t, settings.Field, "groups", "field")
require.Equal(t, settings.Mapping, map[string][]uuid.UUID{
"engineering": {
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
},
}, "mapping")
require.True(t, settings.AssignDefault, "assign default")
})
t.Run("AssignDefault,False", func(t *testing.T) {
t.Parallel()
var settings idpsync.OrganizationSyncSettings
settings.AssignDefault = true
err := settings.Set(legacy(false))
require.NoError(t, err)
require.Equal(t, settings.Field, "groups", "field")
require.Equal(t, settings.Mapping, map[string][]uuid.UUID{
"engineering": {
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
},
}, "mapping")
require.False(t, settings.AssignDefault, "assign default")
})
t.Run("CorrectAssign", func(t *testing.T) {
t.Parallel()
var settings idpsync.OrganizationSyncSettings
settings.AssignDefault = true
err := settings.Set(legacy(false))
require.NoError(t, err)
require.Equal(t, settings.Field, "groups", "field")
require.Equal(t, settings.Mapping, map[string][]uuid.UUID{
"engineering": {
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
},
}, "mapping")
require.False(t, settings.AssignDefault, "assign default")
})
}
func TestParseOrganizationClaims(t *testing.T) {
t.Parallel()