Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-db/go/dbtest/organization_membership.go
2500 views
1
// Copyright (c) 2023 Gitpod GmbH. All rights reserved.
2
// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
5
package dbtest
6
7
import (
8
"testing"
9
"time"
10
11
db "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
)
16
17
func NewTeamMembership(t *testing.T, membership db.OrganizationMembership) db.OrganizationMembership {
18
t.Helper()
19
20
result := db.OrganizationMembership{
21
ID: uuid.New(),
22
OrganizationID: uuid.New(),
23
UserID: uuid.New(),
24
Role: db.OrganizationMembershipRole_Member,
25
CreationTime: db.NewVarCharTime(time.Now()),
26
}
27
28
if membership.ID != uuid.Nil {
29
result.ID = membership.ID
30
}
31
if membership.OrganizationID != uuid.Nil {
32
result.OrganizationID = membership.OrganizationID
33
}
34
if membership.UserID != uuid.Nil {
35
result.UserID = membership.UserID
36
}
37
if membership.Role != "" {
38
result.Role = membership.Role
39
}
40
if membership.CreationTime.IsSet() {
41
result.CreationTime = membership.CreationTime
42
}
43
44
return result
45
}
46
47
func CreateTeamMembership(t *testing.T, conn *gorm.DB, memberships ...db.OrganizationMembership) []db.OrganizationMembership {
48
t.Helper()
49
50
var records []db.OrganizationMembership
51
var ids []uuid.UUID
52
for _, m := range memberships {
53
record := NewTeamMembership(t, m)
54
records = append(records, record)
55
ids = append(ids, record.ID)
56
}
57
58
require.NoError(t, conn.CreateInBatches(&records, 1000).Error)
59
60
t.Cleanup(func() {
61
if len(ids) > 0 {
62
require.NoError(t, conn.Where(ids).Delete(db.OrganizationMembership{}).Error)
63
}
64
65
})
66
67
return records
68
}
69
70