Skip to content

Commit e8ab762

Browse files
committed
Add group and file unit tests
1 parent 6191561 commit e8ab762

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed

coderd/authzquery/file_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package authzquery_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/coder/coder/coderd/database"
7+
"github.com/coder/coder/coderd/database/dbgen"
8+
"github.com/coder/coder/coderd/rbac"
9+
)
10+
11+
func (suite *MethodTestSuite) TestFile() {
12+
suite.Run("GetFileByHashAndCreator", func() {
13+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
14+
f := dbgen.File(t, db, database.File{})
15+
return methodCase(inputs(database.GetFileByHashAndCreatorParams{
16+
Hash: f.Hash,
17+
CreatedBy: f.CreatedBy,
18+
}), asserts(f, rbac.ActionRead))
19+
})
20+
})
21+
suite.Run("GetFileByID", func() {
22+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
23+
f := dbgen.File(t, db, database.File{})
24+
return methodCase(inputs(f.ID), asserts(f, rbac.ActionRead))
25+
})
26+
})
27+
suite.Run("InsertFile", func() {
28+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
29+
u := dbgen.User(t, db, database.User{})
30+
return methodCase(inputs(database.InsertFileParams{
31+
CreatedBy: u.ID,
32+
}), asserts(rbac.ResourceFile.WithOwner(u.ID.String()), rbac.ActionCreate))
33+
})
34+
})
35+
}

coderd/authzquery/group_test.go

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package authzquery_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/google/uuid"
7+
8+
"github.com/coder/coder/coderd/database"
9+
"github.com/coder/coder/coderd/database/dbgen"
10+
"github.com/coder/coder/coderd/rbac"
11+
)
12+
13+
func (suite *MethodTestSuite) TestGroup() {
14+
suite.Run("DeleteGroupByID", func() {
15+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
16+
g := dbgen.Group(t, db, database.Group{})
17+
return methodCase(inputs(g.ID), asserts(g, rbac.ActionDelete))
18+
})
19+
})
20+
suite.Run("DeleteGroupMemberFromGroup", func() {
21+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
22+
g := dbgen.Group(t, db, database.Group{})
23+
m := dbgen.GroupMember(t, db, database.GroupMember{
24+
GroupID: g.ID,
25+
})
26+
return methodCase(inputs(database.DeleteGroupMemberFromGroupParams{
27+
UserID: m.UserID,
28+
GroupID: g.ID,
29+
}), asserts(g, rbac.ActionUpdate))
30+
})
31+
})
32+
suite.Run("GetGroupByID", func() {
33+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
34+
g := dbgen.Group(t, db, database.Group{})
35+
return methodCase(inputs(g.ID), asserts(g, rbac.ActionRead))
36+
})
37+
})
38+
suite.Run("GetGroupByOrgAndName", func() {
39+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
40+
g := dbgen.Group(t, db, database.Group{})
41+
return methodCase(inputs(database.GetGroupByOrgAndNameParams{
42+
OrganizationID: g.OrganizationID,
43+
Name: g.Name,
44+
}), asserts(g, rbac.ActionRead))
45+
})
46+
})
47+
suite.Run("GetGroupMembers", func() {
48+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
49+
g := dbgen.Group(t, db, database.Group{})
50+
_ = dbgen.GroupMember(t, db, database.GroupMember{})
51+
return methodCase(inputs(g.ID), asserts(g, rbac.ActionRead))
52+
})
53+
})
54+
suite.Run("InsertAllUsersGroup", func() {
55+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
56+
o := dbgen.Organization(t, db, database.Organization{})
57+
return methodCase(inputs(o.ID), asserts(rbac.ResourceGroup.InOrg(o.ID), rbac.ActionCreate))
58+
})
59+
})
60+
suite.Run("InsertGroupMember", func() {
61+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
62+
g := dbgen.Group(t, db, database.Group{})
63+
return methodCase(inputs(database.InsertGroupMemberParams{
64+
UserID: uuid.New(),
65+
GroupID: g.ID,
66+
}), asserts(g, rbac.ActionUpdate))
67+
})
68+
})
69+
suite.Run("UpdateGroupByID", func() {
70+
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
71+
g := dbgen.Group(t, db, database.Group{})
72+
return methodCase(inputs(database.UpdateGroupByIDParams{
73+
Name: "new-name",
74+
ID: g.ID,
75+
}), asserts(g, rbac.ActionUpdate))
76+
})
77+
})
78+
}

coderd/database/dbgen/generator.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,19 @@ func Group(t *testing.T, db database.Store, orig database.Group) database.Group
210210
return group
211211
}
212212

213+
func GroupMember(t *testing.T, db database.Store, orig database.GroupMember) database.GroupMember {
214+
member := database.GroupMember{
215+
UserID: takeFirst(orig.UserID, uuid.New()),
216+
GroupID: takeFirst(orig.GroupID, uuid.New()),
217+
}
218+
err := db.InsertGroupMember(context.Background(), database.InsertGroupMemberParams{
219+
UserID: member.UserID,
220+
GroupID: member.GroupID,
221+
})
222+
require.NoError(t, err, "insert group member")
223+
return member
224+
}
225+
213226
func ProvisionerJob(t *testing.T, db database.Store, orig database.ProvisionerJob) database.ProvisionerJob {
214227
job, err := db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{
215228
ID: takeFirst(orig.ID, uuid.New()),

0 commit comments

Comments
 (0)