Path: blob/main/components/gitpod-db/go/dbtest/organization_membership.go
2500 views
// Copyright (c) 2023 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 NewTeamMembership(t *testing.T, membership db.OrganizationMembership) db.OrganizationMembership {17t.Helper()1819result := db.OrganizationMembership{20ID: uuid.New(),21OrganizationID: uuid.New(),22UserID: uuid.New(),23Role: db.OrganizationMembershipRole_Member,24CreationTime: db.NewVarCharTime(time.Now()),25}2627if membership.ID != uuid.Nil {28result.ID = membership.ID29}30if membership.OrganizationID != uuid.Nil {31result.OrganizationID = membership.OrganizationID32}33if membership.UserID != uuid.Nil {34result.UserID = membership.UserID35}36if membership.Role != "" {37result.Role = membership.Role38}39if membership.CreationTime.IsSet() {40result.CreationTime = membership.CreationTime41}4243return result44}4546func CreateTeamMembership(t *testing.T, conn *gorm.DB, memberships ...db.OrganizationMembership) []db.OrganizationMembership {47t.Helper()4849var records []db.OrganizationMembership50var ids []uuid.UUID51for _, m := range memberships {52record := NewTeamMembership(t, m)53records = append(records, record)54ids = append(ids, record.ID)55}5657require.NoError(t, conn.CreateInBatches(&records, 1000).Error)5859t.Cleanup(func() {60if len(ids) > 0 {61require.NoError(t, conn.Where(ids).Delete(db.OrganizationMembership{}).Error)62}6364})6566return records67}686970