Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-db/go/organization_membership_test.go
2497 views
1
// Copyright (c) 2022 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 db_test
6
7
import (
8
"context"
9
10
"testing"
11
12
db "github.com/gitpod-io/gitpod/components/gitpod-db/go"
13
"github.com/gitpod-io/gitpod/components/gitpod-db/go/dbtest"
14
"github.com/google/uuid"
15
"github.com/stretchr/testify/require"
16
)
17
18
func TestGetTeamMembership(t *testing.T) {
19
20
t.Run("membership does not exist", func(t *testing.T) {
21
conn := dbtest.ConnectForTests(t)
22
_, err := db.GetOrganizationMembership(context.Background(), conn, uuid.New(), uuid.New())
23
require.Error(t, err)
24
require.ErrorIs(t, err, db.ErrorNotFound)
25
})
26
27
t.Run("ignores deleted records", func(t *testing.T) {
28
conn := dbtest.ConnectForTests(t)
29
membership := dbtest.CreateTeamMembership(t, conn, db.OrganizationMembership{})[0]
30
31
err := db.DeleteOrganizationMembership(context.Background(), conn, membership.UserID, membership.OrganizationID)
32
require.NoError(t, err)
33
34
_, err = db.GetOrganizationMembership(context.Background(), conn, membership.UserID, membership.OrganizationID)
35
require.Error(t, err)
36
require.ErrorIs(t, err, db.ErrorNotFound)
37
})
38
39
t.Run("retrieves membership", func(t *testing.T) {
40
conn := dbtest.ConnectForTests(t)
41
membership := dbtest.CreateTeamMembership(t, conn, db.OrganizationMembership{})[0]
42
43
retrieved, err := db.GetOrganizationMembership(context.Background(), conn, membership.UserID, membership.OrganizationID)
44
require.NoError(t, err)
45
46
require.Equal(t, membership.ID, retrieved.ID)
47
require.Equal(t, membership.Role, retrieved.Role)
48
require.Equal(t, membership.UserID, retrieved.UserID)
49
require.Equal(t, membership.OrganizationID, retrieved.OrganizationID)
50
})
51
}
52
53
func TestDeleteTeamMembership(t *testing.T) {
54
55
t.Run("not found when membership does not exist", func(t *testing.T) {
56
conn := dbtest.ConnectForTests(t)
57
err := db.DeleteOrganizationMembership(context.Background(), conn, uuid.New(), uuid.New())
58
require.Error(t, err)
59
require.ErrorIs(t, err, db.ErrorNotFound)
60
})
61
}
62
63