Skip to content

Commit 2e435cf

Browse files
committed
Require outputs to be asserted
1 parent a37fead commit 2e435cf

13 files changed

+200
-200
lines changed

coderd/authzquery/apikey_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,35 @@ func (suite *MethodTestSuite) TestAPIKey() {
1313
suite.Run("DeleteAPIKeyByID", func() {
1414
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
1515
key, _ := dbgen.APIKey(t, db, database.APIKey{})
16-
return methodCase(inputs(key.ID), asserts(key, rbac.ActionDelete))
16+
return methodCase(values(key.ID), asserts(key, rbac.ActionDelete))
1717
})
1818
})
1919
suite.Run("GetAPIKeyByID", func() {
2020
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
2121
key, _ := dbgen.APIKey(t, db, database.APIKey{})
22-
return methodCase(inputs(key.ID), asserts(key, rbac.ActionRead))
22+
return methodCase(values(key.ID), asserts(key, rbac.ActionRead))
2323
})
2424
})
2525
suite.Run("GetAPIKeysByLoginType", func() {
2626
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
2727
a, _ := dbgen.APIKey(t, db, database.APIKey{LoginType: database.LoginTypePassword})
2828
b, _ := dbgen.APIKey(t, db, database.APIKey{LoginType: database.LoginTypePassword})
2929
_, _ = dbgen.APIKey(t, db, database.APIKey{LoginType: database.LoginTypeGithub})
30-
return methodCase(inputs(database.LoginTypePassword), asserts(a, rbac.ActionRead, b, rbac.ActionRead))
30+
return methodCase(values(database.LoginTypePassword), asserts(a, rbac.ActionRead, b, rbac.ActionRead))
3131
})
3232
})
3333
suite.Run("GetAPIKeysLastUsedAfter", func() {
3434
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
3535
a, _ := dbgen.APIKey(t, db, database.APIKey{LastUsed: time.Now().Add(time.Hour)})
3636
b, _ := dbgen.APIKey(t, db, database.APIKey{LastUsed: time.Now().Add(time.Hour)})
3737
_, _ = dbgen.APIKey(t, db, database.APIKey{LastUsed: time.Now().Add(-time.Hour)})
38-
return methodCase(inputs(time.Now()), asserts(a, rbac.ActionRead, b, rbac.ActionRead))
38+
return methodCase(values(time.Now()), asserts(a, rbac.ActionRead, b, rbac.ActionRead))
3939
})
4040
})
4141
suite.Run("InsertAPIKey", func() {
4242
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
4343
u := dbgen.User(t, db, database.User{})
44-
return methodCase(inputs(database.InsertAPIKeyParams{
44+
return methodCase(values(database.InsertAPIKeyParams{
4545
UserID: u.ID,
4646
LoginType: database.LoginTypePassword,
4747
Scope: database.APIKeyScopeAll,
@@ -51,7 +51,7 @@ func (suite *MethodTestSuite) TestAPIKey() {
5151
suite.Run("UpdateAPIKeyByID", func() {
5252
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
5353
a, _ := dbgen.APIKey(t, db, database.APIKey{})
54-
return methodCase(inputs(database.UpdateAPIKeyByIDParams{
54+
return methodCase(values(database.UpdateAPIKeyByIDParams{
5555
ID: a.ID,
5656
LastUsed: time.Now(),
5757
}), asserts(a, rbac.ActionUpdate))

coderd/authzquery/audit_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func (suite *MethodTestSuite) TestAuditLogs() {
1313
suite.Run("InsertAuditLog", func() {
1414
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
15-
return methodCase(inputs(database.InsertAuditLogParams{
15+
return methodCase(values(database.InsertAuditLogParams{
1616
ResourceType: database.ResourceTypeOrganization,
1717
Action: database.AuditActionCreate,
1818
}),
@@ -23,7 +23,7 @@ func (suite *MethodTestSuite) TestAuditLogs() {
2323
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
2424
_ = dbgen.AuditLog(t, db, database.AuditLog{})
2525
_ = dbgen.AuditLog(t, db, database.AuditLog{})
26-
return methodCase(inputs(database.GetAuditLogsOffsetParams{
26+
return methodCase(values(database.GetAuditLogsOffsetParams{
2727
Limit: 10,
2828
}),
2929
asserts(rbac.ResourceAuditLog, rbac.ActionRead))

coderd/authzquery/file_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ func (suite *MethodTestSuite) TestFile() {
1212
suite.Run("GetFileByHashAndCreator", func() {
1313
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
1414
f := dbgen.File(t, db, database.File{})
15-
return methodCase(inputs(database.GetFileByHashAndCreatorParams{
15+
return methodCase(values(database.GetFileByHashAndCreatorParams{
1616
Hash: f.Hash,
1717
CreatedBy: f.CreatedBy,
1818
}), asserts(f, rbac.ActionRead))
@@ -21,13 +21,13 @@ func (suite *MethodTestSuite) TestFile() {
2121
suite.Run("GetFileByID", func() {
2222
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
2323
f := dbgen.File(t, db, database.File{})
24-
return methodCase(inputs(f.ID), asserts(f, rbac.ActionRead))
24+
return methodCase(values(f.ID), asserts(f, rbac.ActionRead))
2525
})
2626
})
2727
suite.Run("InsertFile", func() {
2828
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
2929
u := dbgen.User(t, db, database.User{})
30-
return methodCase(inputs(database.InsertFileParams{
30+
return methodCase(values(database.InsertFileParams{
3131
CreatedBy: u.ID,
3232
}), asserts(rbac.ResourceFile.WithOwner(u.ID.String()), rbac.ActionCreate))
3333
})

coderd/authzquery/group_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func (suite *MethodTestSuite) TestGroup() {
1515
suite.Run("DeleteGroupByID", func() {
1616
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
1717
g := dbgen.Group(t, db, database.Group{})
18-
return methodCase(inputs(g.ID), asserts(g, rbac.ActionDelete))
18+
return methodCase(values(g.ID), asserts(g, rbac.ActionDelete))
1919
})
2020
})
2121
suite.Run("DeleteGroupMemberFromGroup", func() {
@@ -24,7 +24,7 @@ func (suite *MethodTestSuite) TestGroup() {
2424
m := dbgen.GroupMember(t, db, database.GroupMember{
2525
GroupID: g.ID,
2626
})
27-
return methodCase(inputs(database.DeleteGroupMemberFromGroupParams{
27+
return methodCase(values(database.DeleteGroupMemberFromGroupParams{
2828
UserID: m.UserID,
2929
GroupID: g.ID,
3030
}), asserts(g, rbac.ActionUpdate))
@@ -33,13 +33,13 @@ func (suite *MethodTestSuite) TestGroup() {
3333
suite.Run("GetGroupByID", func() {
3434
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
3535
g := dbgen.Group(t, db, database.Group{})
36-
return methodCase(inputs(g.ID), asserts(g, rbac.ActionRead))
36+
return methodCase(values(g.ID), asserts(g, rbac.ActionRead))
3737
})
3838
})
3939
suite.Run("GetGroupByOrgAndName", func() {
4040
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
4141
g := dbgen.Group(t, db, database.Group{})
42-
return methodCase(inputs(database.GetGroupByOrgAndNameParams{
42+
return methodCase(values(database.GetGroupByOrgAndNameParams{
4343
OrganizationID: g.OrganizationID,
4444
Name: g.Name,
4545
}), asserts(g, rbac.ActionRead))
@@ -49,19 +49,19 @@ func (suite *MethodTestSuite) TestGroup() {
4949
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
5050
g := dbgen.Group(t, db, database.Group{})
5151
_ = dbgen.GroupMember(t, db, database.GroupMember{})
52-
return methodCase(inputs(g.ID), asserts(g, rbac.ActionRead))
52+
return methodCase(values(g.ID), asserts(g, rbac.ActionRead))
5353
})
5454
})
5555
suite.Run("InsertAllUsersGroup", func() {
5656
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
5757
o := dbgen.Organization(t, db, database.Organization{})
58-
return methodCase(inputs(o.ID), asserts(rbac.ResourceGroup.InOrg(o.ID), rbac.ActionCreate))
58+
return methodCase(values(o.ID), asserts(rbac.ResourceGroup.InOrg(o.ID), rbac.ActionCreate))
5959
})
6060
})
6161
suite.Run("InsertGroup", func() {
6262
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
6363
o := dbgen.Organization(t, db, database.Organization{})
64-
return methodCase(inputs(database.InsertGroupParams{
64+
return methodCase(values(database.InsertGroupParams{
6565
OrganizationID: o.ID,
6666
Name: "test",
6767
}), asserts(rbac.ResourceGroup.InOrg(o.ID), rbac.ActionCreate))
@@ -70,7 +70,7 @@ func (suite *MethodTestSuite) TestGroup() {
7070
suite.Run("InsertGroupMember", func() {
7171
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
7272
g := dbgen.Group(t, db, database.Group{})
73-
return methodCase(inputs(database.InsertGroupMemberParams{
73+
return methodCase(values(database.InsertGroupMemberParams{
7474
UserID: uuid.New(),
7575
GroupID: g.ID,
7676
}), asserts(g, rbac.ActionUpdate))
@@ -83,7 +83,7 @@ func (suite *MethodTestSuite) TestGroup() {
8383
g1 := dbgen.Group(t, db, database.Group{OrganizationID: o.ID})
8484
g2 := dbgen.Group(t, db, database.Group{OrganizationID: o.ID})
8585
_ = dbgen.GroupMember(t, db, database.GroupMember{GroupID: g1.ID, UserID: u1.ID})
86-
return methodCase(inputs(database.InsertUserGroupsByNameParams{
86+
return methodCase(values(database.InsertUserGroupsByNameParams{
8787
OrganizationID: o.ID,
8888
UserID: u1.ID,
8989
GroupNames: slice.New(g1.Name, g2.Name),
@@ -98,7 +98,7 @@ func (suite *MethodTestSuite) TestGroup() {
9898
g2 := dbgen.Group(t, db, database.Group{OrganizationID: o.ID})
9999
_ = dbgen.GroupMember(t, db, database.GroupMember{GroupID: g1.ID, UserID: u1.ID})
100100
_ = dbgen.GroupMember(t, db, database.GroupMember{GroupID: g2.ID, UserID: u1.ID})
101-
return methodCase(inputs(database.DeleteGroupMembersByOrgAndUserParams{
101+
return methodCase(values(database.DeleteGroupMembersByOrgAndUserParams{
102102
OrganizationID: o.ID,
103103
UserID: u1.ID,
104104
}), asserts(rbac.ResourceGroup.InOrg(o.ID), rbac.ActionUpdate))
@@ -107,7 +107,7 @@ func (suite *MethodTestSuite) TestGroup() {
107107
suite.Run("UpdateGroupByID", func() {
108108
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
109109
g := dbgen.Group(t, db, database.Group{})
110-
return methodCase(inputs(database.UpdateGroupByIDParams{
110+
return methodCase(values(database.UpdateGroupByIDParams{
111111
Name: "new-name",
112112
ID: g.ID,
113113
}), asserts(g, rbac.ActionUpdate))

coderd/authzquery/job_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
1919
Type: database.ProvisionerJobTypeWorkspaceBuild,
2020
})
2121
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
22-
return methodCase(inputs(j.ID), asserts(w, rbac.ActionRead))
22+
return methodCase(values(j.ID), asserts(w, rbac.ActionRead))
2323
})
2424
})
2525
suite.Run("TemplateVersion/GetProvisionerJobByID", func() {
@@ -32,7 +32,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
3232
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
3333
JobID: j.ID,
3434
})
35-
return methodCase(inputs(j.ID), asserts(v.RBACObject(tpl), rbac.ActionRead))
35+
return methodCase(values(j.ID), asserts(v.RBACObject(tpl), rbac.ActionRead))
3636
})
3737
})
3838
suite.Run("TemplateVersionDryRun/GetProvisionerJobByID", func() {
@@ -47,7 +47,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
4747
TemplateVersionID uuid.UUID `json:"template_version_id"`
4848
}{TemplateVersionID: v.ID})),
4949
})
50-
return methodCase(inputs(j.ID), asserts(v.RBACObject(tpl), rbac.ActionRead))
50+
return methodCase(values(j.ID), asserts(v.RBACObject(tpl), rbac.ActionRead))
5151
})
5252
})
5353
suite.Run("Build/UpdateProvisionerJobWithCancelByID", func() {
@@ -58,7 +58,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
5858
Type: database.ProvisionerJobTypeWorkspaceBuild,
5959
})
6060
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
61-
return methodCase(inputs(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}), asserts(w, rbac.ActionUpdate))
61+
return methodCase(values(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}), asserts(w, rbac.ActionUpdate))
6262
})
6363
})
6464
suite.Run("TemplateVersion/UpdateProvisionerJobWithCancelByID", func() {
@@ -71,7 +71,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
7171
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
7272
JobID: j.ID,
7373
})
74-
return methodCase(inputs(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}),
74+
return methodCase(values(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}),
7575
asserts(v.RBACObject(tpl), []rbac.Action{rbac.ActionRead, rbac.ActionUpdate}))
7676
})
7777
})
@@ -87,15 +87,15 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
8787
TemplateVersionID uuid.UUID `json:"template_version_id"`
8888
}{TemplateVersionID: v.ID})),
8989
})
90-
return methodCase(inputs(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}),
90+
return methodCase(values(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}),
9191
asserts(v.RBACObject(tpl), []rbac.Action{rbac.ActionRead, rbac.ActionUpdate}))
9292
})
9393
})
9494
suite.Run("GetProvisionerJobsByIDs", func() {
9595
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
9696
a := dbgen.ProvisionerJob(t, db, database.ProvisionerJob{})
9797
b := dbgen.ProvisionerJob(t, db, database.ProvisionerJob{})
98-
return methodCase(inputs([]uuid.UUID{a.ID, b.ID}), asserts())
98+
return methodCase(values([]uuid.UUID{a.ID, b.ID}), asserts())
9999
})
100100
})
101101
suite.Run("GetProvisionerLogsByIDBetween", func() {
@@ -105,7 +105,7 @@ func (suite *MethodTestSuite) TestProvsionerJob() {
105105
Type: database.ProvisionerJobTypeWorkspaceBuild,
106106
})
107107
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
108-
return methodCase(inputs(database.GetProvisionerLogsByIDBetweenParams{
108+
return methodCase(values(database.GetProvisionerLogsByIDBetweenParams{
109109
JobID: j.ID,
110110
}), asserts(w, rbac.ActionRead))
111111
})

coderd/authzquery/license_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,22 @@ func (suite *MethodTestSuite) TestLicense() {
1818
Uuid: uuid.NullUUID{UUID: uuid.New(), Valid: true},
1919
})
2020
require.NoError(t, err)
21-
return methodCase(inputs(), asserts(l, rbac.ActionRead))
21+
return methodCase(values(), asserts(l, rbac.ActionRead))
2222
})
2323
})
2424
suite.Run("InsertLicense", func() {
2525
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
26-
return methodCase(inputs(database.InsertLicenseParams{}), asserts(rbac.ResourceLicense, rbac.ActionCreate))
26+
return methodCase(values(database.InsertLicenseParams{}), asserts(rbac.ResourceLicense, rbac.ActionCreate))
2727
})
2828
})
2929
suite.Run("InsertOrUpdateLogoURL", func() {
3030
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
31-
return methodCase(inputs("value"), asserts(rbac.ResourceDeploymentConfig, rbac.ActionUpdate))
31+
return methodCase(values("value"), asserts(rbac.ResourceDeploymentConfig, rbac.ActionUpdate))
3232
})
3333
})
3434
suite.Run("InsertOrUpdateServiceBanner", func() {
3535
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
36-
return methodCase(inputs("value"), asserts(rbac.ResourceDeploymentConfig, rbac.ActionUpdate))
36+
return methodCase(values("value"), asserts(rbac.ResourceDeploymentConfig, rbac.ActionUpdate))
3737
})
3838
})
3939
suite.Run("GetLicenseByID", func() {
@@ -42,7 +42,7 @@ func (suite *MethodTestSuite) TestLicense() {
4242
Uuid: uuid.NullUUID{UUID: uuid.New(), Valid: true},
4343
})
4444
require.NoError(t, err)
45-
return methodCase(inputs(l.ID), asserts(l, rbac.ActionRead))
45+
return methodCase(values(l.ID), asserts(l, rbac.ActionRead))
4646
})
4747
})
4848
suite.Run("DeleteLicense", func() {
@@ -51,26 +51,26 @@ func (suite *MethodTestSuite) TestLicense() {
5151
Uuid: uuid.NullUUID{UUID: uuid.New(), Valid: true},
5252
})
5353
require.NoError(t, err)
54-
return methodCase(inputs(l.ID), asserts(l, rbac.ActionDelete))
54+
return methodCase(values(l.ID), asserts(l, rbac.ActionDelete))
5555
})
5656
})
5757
suite.Run("GetDeploymentID", func() {
5858
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
59-
return methodCase(inputs(), asserts())
59+
return methodCase(values(), asserts())
6060
})
6161
})
6262
suite.Run("GetLogoURL", func() {
6363
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
6464
err := db.InsertOrUpdateLogoURL(context.Background(), "value")
6565
require.NoError(t, err)
66-
return methodCase(inputs(), asserts())
66+
return methodCase(values(), asserts())
6767
})
6868
})
6969
suite.Run("GetServiceBanner", func() {
7070
suite.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
7171
err := db.InsertOrUpdateServiceBanner(context.Background(), "value")
7272
require.NoError(t, err)
73-
return methodCase(inputs(), asserts())
73+
return methodCase(values(), asserts())
7474
})
7575
})
7676
}

coderd/authzquery/methods_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,30 +220,30 @@ type AssertRBAC struct {
220220

221221
// methodCase is a convenience method for creating MethodCases.
222222
//
223-
// methodCase(inputs(workspace, template, ...), asserts(workspace, rbac.ActionRead, template, rbac.ActionRead, ...))
223+
// methodCase(values(workspace, template, ...), asserts(workspace, rbac.ActionRead, template, rbac.ActionRead, ...))
224224
//
225225
// is equivalent to
226226
//
227227
// MethodCase{
228-
// Inputs: inputs(workspace, template, ...),
228+
// Inputs: values(workspace, template, ...),
229229
// Assertions: asserts(workspace, rbac.ActionRead, template, rbac.ActionRead, ...),
230230
// }
231-
func methodCase(ins []reflect.Value, assertions []AssertRBAC) MethodCase {
231+
func methodCase(ins []reflect.Value, assertions []AssertRBAC, outs []reflect.Value) MethodCase {
232232
return MethodCase{
233233
Inputs: ins,
234234
Assertions: assertions,
235-
ExpectedOutputs: nil,
235+
ExpectedOutputs: outs,
236236
}
237237
}
238238

239239
func (m MethodCase) Outputs(outs ...any) MethodCase {
240-
m.ExpectedOutputs = inputs(outs...)
240+
m.ExpectedOutputs = values(outs...)
241241
return m
242242
}
243243

244-
// inputs is a convenience method for creating []reflect.Value.
244+
// values is a convenience method for creating []reflect.Value.
245245
//
246-
// inputs(workspace, template, ...)
246+
// values(workspace, template, ...)
247247
//
248248
// is equivalent to
249249
//
@@ -252,7 +252,7 @@ func (m MethodCase) Outputs(outs ...any) MethodCase {
252252
// reflect.ValueOf(template),
253253
// ...
254254
// }
255-
func inputs(ins ...any) []reflect.Value {
255+
func values(ins ...any) []reflect.Value {
256256
out := make([]reflect.Value, 0)
257257
for _, input := range ins {
258258
input := input
@@ -322,12 +322,12 @@ func (s *MethodTestSuite) TestExtraMethods() {
322322
ID: uuid.New(),
323323
})
324324
require.NoError(t, err, "insert provisioner daemon")
325-
return methodCase(inputs(), asserts(d, rbac.ActionRead))
325+
return methodCase(values(), asserts(d, rbac.ActionRead))
326326
})
327327
})
328328
s.Run("GetDeploymentDAUs", func() {
329329
s.RunMethodTest(func(t *testing.T, db database.Store) MethodCase {
330-
return methodCase(inputs(), asserts(rbac.ResourceUser.All(), rbac.ActionRead))
330+
return methodCase(values(), asserts(rbac.ResourceUser.All(), rbac.ActionRead))
331331
})
332332
})
333333
}

0 commit comments

Comments
 (0)