Skip to content

Commit 62ef8d9

Browse files
committed
Add unit test
1 parent 3040cae commit 62ef8d9

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

coderd/coderdtest/coderdtest.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ func (o *OIDCConfig) EncodeClaims(t *testing.T, claims jwt.MapClaims) string {
939939
return base64.StdEncoding.EncodeToString([]byte(signed))
940940
}
941941

942-
func (o *OIDCConfig) OIDCConfig(t *testing.T, userInfoClaims jwt.MapClaims) *coderd.OIDCConfig {
942+
func (o *OIDCConfig) OIDCConfig(t *testing.T, userInfoClaims jwt.MapClaims, opts ...func(cfg *coderd.OIDCConfig)) *coderd.OIDCConfig {
943943
// By default, the provider can be empty.
944944
// This means it won't support any endpoints!
945945
provider := &oidc.Provider{}
@@ -956,7 +956,7 @@ func (o *OIDCConfig) OIDCConfig(t *testing.T, userInfoClaims jwt.MapClaims) *cod
956956
}
957957
provider = cfg.NewProvider(context.Background())
958958
}
959-
return &coderd.OIDCConfig{
959+
cfg := &coderd.OIDCConfig{
960960
OAuth2Config: o,
961961
Verifier: oidc.NewVerifier(o.issuer, &oidc.StaticKeySet{
962962
PublicKeys: []crypto.PublicKey{o.key.Public()},
@@ -965,7 +965,12 @@ func (o *OIDCConfig) OIDCConfig(t *testing.T, userInfoClaims jwt.MapClaims) *cod
965965
}),
966966
Provider: provider,
967967
UsernameField: "preferred_username",
968+
GroupField: "groups",
968969
}
970+
for _, opt := range opts {
971+
opt(cfg)
972+
}
973+
return cfg
969974
}
970975

971976
// NewAzureInstanceIdentity returns a metadata client and ID token validator for faking

codersdk/deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ when required by your organization's security policy.`,
824824
Description: "OIDC claim field to use as the user's groups. Set to \"\" to disable OIDC group support.",
825825
Flag: "oidc-group-field",
826826
Env: "OIDC_GROUP_FIELD",
827-
Default: "group",
827+
Default: "groups",
828828
Value: &c.OIDC.GroupField,
829829
Group: &deploymentGroupOIDC,
830830
YAML: "groupField",

enterprise/coderd/userauth_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/stretchr/testify/assert"
1212
"github.com/stretchr/testify/require"
1313

14+
"github.com/coder/coder/coderd"
1415
"github.com/coder/coder/coderd/coderdtest"
1516
"github.com/coder/coder/codersdk"
1617
"github.com/coder/coder/enterprise/coderd/coderdenttest"
@@ -28,7 +29,10 @@ func TestUserOIDC(t *testing.T) {
2829
ctx, _ := testutil.Context(t)
2930
conf := coderdtest.NewOIDCConfig(t, "")
3031

31-
config := conf.OIDCConfig(t, jwt.MapClaims{})
32+
const groupClaim = "custom-groups"
33+
config := conf.OIDCConfig(t, jwt.MapClaims{}, func(cfg *coderd.OIDCConfig) {
34+
cfg.GroupField = groupClaim
35+
})
3236
config.AllowSignups = true
3337

3438
client := coderdenttest.New(t, &coderdenttest.Options{
@@ -53,8 +57,8 @@ func TestUserOIDC(t *testing.T) {
5357
require.Len(t, group.Members, 0)
5458

5559
resp := oidcCallback(t, client, conf.EncodeClaims(t, jwt.MapClaims{
56-
"email": "colin@coder.com",
57-
"groups": []string{groupName},
60+
"email": "colin@coder.com",
61+
groupClaim: []string{groupName},
5862
}))
5963
assert.Equal(t, http.StatusTemporaryRedirect, resp.StatusCode)
6064

0 commit comments

Comments
 (0)