fix(coderd/provisionerdserver): prevent NPE if no user link exists (#15289)

This commit is contained in:
Cian Johnston
2024-10-30 19:16:59 +00:00
committed by GitHub
parent 3de98c25db
commit 591cefa428
2 changed files with 11 additions and 1 deletions
@@ -2026,7 +2026,7 @@ func obtainOIDCAccessToken(ctx context.Context, db database.Store, oidcConfig pr
LoginType: database.LoginTypeOIDC,
})
if errors.Is(err, sql.ErrNoRows) {
err = nil
return "", nil
}
if err != nil {
return "", xerrors.Errorf("get owner oidc link: %w", err)
@@ -38,6 +38,16 @@ func TestObtainOIDCAccessToken(t *testing.T) {
_, err := obtainOIDCAccessToken(ctx, db, &oauth2.Config{}, user.ID)
require.NoError(t, err)
})
t.Run("MissingLink", func(t *testing.T) {
t.Parallel()
db := dbmem.New()
user := dbgen.User(t, db, database.User{
LoginType: database.LoginTypeOIDC,
})
tok, err := obtainOIDCAccessToken(ctx, db, &oauth2.Config{}, user.ID)
require.Empty(t, tok)
require.NoError(t, err)
})
t.Run("Exchange", func(t *testing.T) {
t.Parallel()
db := dbmem.New()