Path: blob/main/components/gitpod-db/go/dbtest/user.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"8"time"910db "github.com/gitpod-io/gitpod/components/gitpod-db/go"11"github.com/google/uuid"12"github.com/stretchr/testify/require"13"gorm.io/gorm"14)1516func NewUser(t *testing.T, user db.User) db.User {17t.Helper()1819orgID := uuid.New()2021userID := uuid.New()22result := db.User{23ID: userID,24OrganizationID: &orgID,25UsageAttributionID: db.NewTeamAttributionID(uuid.NewString()),2627Name: "HomerJSimpson",28FullName: "Homer Simpson",29AvatarURL: "https://avatars.githubusercontent.com/u/9071",3031CreationDate: db.NewVarCharTime(time.Now().Round(time.Second)),3233Identities: []db.Identity{34NewIdentity(t, db.Identity{35UserID: userID,36}),37},38}3940if user.ID != uuid.Nil {41result.ID = user.ID42}43if user.OrganizationID != nil {44result.OrganizationID = user.OrganizationID45}46if user.UsageAttributionID != "" {47result.UsageAttributionID = user.UsageAttributionID48}4950if user.AvatarURL != "" {51result.AvatarURL = user.AvatarURL52}53if user.Name != "" {54result.Name = user.Name55}56if user.FullName != "" {57result.FullName = user.FullName58}5960return result61}6263func CreatUsers(t *testing.T, conn *gorm.DB, user ...db.User) []db.User {64t.Helper()6566var records []db.User67var ids []uuid.UUID68for _, u := range user {69record := NewUser(t, u)70records = append(records, record)71ids = append(ids, record.ID)72}7374require.NoError(t, conn.CreateInBatches(&records, 1000).Error)7576t.Cleanup(func() {77if len(ids) > 0 {78require.NoError(t, conn.Where(ids).Delete(&db.User{}).Error)79}80})8182return records83}848586