Path: blob/main/components/gitpod-db/go/dbtest/oidc_client_config.go
2500 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package dbtest56import (7"context"8"testing"9"time"1011db "github.com/gitpod-io/gitpod/components/gitpod-db/go"12"github.com/google/uuid"13"github.com/stretchr/testify/require"14"gorm.io/gorm"15)1617func NewOIDCClientConfig(t *testing.T, record db.OIDCClientConfig) db.OIDCClientConfig {18t.Helper()1920cipher, _ := GetTestCipher(t)21encrypted, err := db.EncryptJSON(cipher, db.OIDCSpec{22ClientID: "oidc-client-id",23ClientSecret: "oidc-client-secret",24RedirectURL: "https://some-redirect-url.or/not",25Scopes: []string{26"aint", "never", "gonna", "give", "you", "up",27},28})29require.NoError(t, err)3031now := time.Now().UTC().Truncate(time.Millisecond)32result := db.OIDCClientConfig{33ID: uuid.New(),34OrganizationID: uuid.New(),35Issuer: "https://accounts.google.com",36Data: encrypted,37LastModified: now,38Active: false,39Verified: db.BoolPointer(false),40}4142if record.ID != uuid.Nil {43result.ID = record.ID44}4546if record.OrganizationID != uuid.Nil {47result.OrganizationID = record.OrganizationID48}4950if record.Issuer != "" {51result.Issuer = record.Issuer52}5354if record.Data != nil {55result.Data = record.Data56}5758if record.Active {59result.Active = true60}6162if record.Verified != nil && *record.Verified {63result.Verified = db.BoolPointer(true)64}6566return result67}6869func CreateOIDCClientConfigs(t *testing.T, conn *gorm.DB, entries ...db.OIDCClientConfig) []db.OIDCClientConfig {70t.Helper()7172var records []db.OIDCClientConfig73var ids []string74for _, entry := range entries {75record := NewOIDCClientConfig(t, entry)76records = append(records, record)77ids = append(ids, record.ID.String())7879foo, err := db.CreateOIDCClientConfig(context.Background(), conn, record)80require.NoError(t, err)81require.NotNil(t, foo)82}8384t.Cleanup(func() {85HardDeleteOIDCClientConfigs(t, ids...)86})8788return records89}9091func HardDeleteOIDCClientConfigs(t *testing.T, ids ...string) {92if len(ids) > 0 {93require.NoError(t, conn.Where(ids).Delete(&db.OIDCClientConfig{}).Error)94}95}969798