Path: blob/main/components/gitpod-db/go/dbtest/identity.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"testing"89db "github.com/gitpod-io/gitpod/components/gitpod-db/go"10"github.com/google/uuid"11"github.com/stretchr/testify/require"12"gorm.io/gorm"13)1415func NewIdentity(t *testing.T, idnt db.Identity) db.Identity {16t.Helper()1718result := db.Identity{19AuthProviderID: uuid.NewString(),20AuthID: uuid.NewString(),21AuthName: "unittest",22UserID: uuid.New(),23PrimaryEmail: "[email protected]",24}2526if idnt.AuthProviderID != "" {27result.AuthProviderID = idnt.AuthProviderID28}29if idnt.AuthID != "" {30result.AuthID = idnt.AuthID31}32if idnt.AuthName != "" {33result.AuthName = idnt.AuthName34}35if idnt.UserID != uuid.Nil {36result.UserID = idnt.UserID37}38if idnt.PrimaryEmail != "" {39result.PrimaryEmail = idnt.PrimaryEmail40}4142return result43}4445func CreateIdentities(t *testing.T, conn *gorm.DB, user ...db.Identity) []db.Identity {46t.Helper()4748type tuple struct {49AuthProviderID string50AuthID string51}5253var records []db.Identity54var ids []tuple55for _, u := range user {56record := NewIdentity(t, u)57records = append(records, record)58ids = append(ids, tuple{59AuthProviderID: record.AuthProviderID,60AuthID: record.AuthID,61})6263}64require.NoError(t, conn.CreateInBatches(&records, 1000).Error)6566t.Cleanup(func() {67for _, tup := range ids {68require.NoError(t, conn.Where("authProviderId = ?", tup.AuthProviderID).Where("authId = ?", tup.AuthID).Delete(&db.User{}).Error)69}70})7172return records73}747576