Skip to content

Commit 12dc42b

Browse files
committed
add dbauthz tests
1 parent 2eaa2eb commit 12dc42b

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4544,3 +4544,88 @@ func (s *MethodTestSuite) TestOAuth2ProviderAppTokens() {
45444544
}).Asserts(rbac.ResourceOauth2AppCodeToken.WithOwner(user.ID.String()), policy.ActionDelete)
45454545
}))
45464546
}
4547+
4548+
func (s *MethodTestSuite) TestResourcesMonitor() {
4549+
s.Run("FetchMemoryResourceMonitor", s.Subtest(func(db database.Store, check *expects) {
4550+
u := dbgen.User(s.T(), db, database.User{})
4551+
o := dbgen.Organization(s.T(), db, database.Organization{})
4552+
tpl := dbgen.Template(s.T(), db, database.Template{
4553+
OrganizationID: o.ID,
4554+
CreatedBy: u.ID,
4555+
})
4556+
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
4557+
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
4558+
OrganizationID: o.ID,
4559+
CreatedBy: u.ID,
4560+
})
4561+
w := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
4562+
TemplateID: tpl.ID,
4563+
OrganizationID: o.ID,
4564+
OwnerID: u.ID,
4565+
})
4566+
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
4567+
Type: database.ProvisionerJobTypeWorkspaceBuild,
4568+
})
4569+
b := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{
4570+
JobID: j.ID,
4571+
WorkspaceID: w.ID,
4572+
TemplateVersionID: tv.ID,
4573+
})
4574+
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
4575+
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
4576+
_, err := db.InsertMemoryResourceMonitor(context.Background(), database.InsertMemoryResourceMonitorParams{
4577+
AgentID: agt.ID,
4578+
Enabled: true,
4579+
Threshold: 80,
4580+
CreatedAt: dbtime.Now(),
4581+
})
4582+
require.NoError(s.T(), err)
4583+
4584+
monitor, err := db.FetchMemoryResourceMonitorsByAgentID(context.Background(), agt.ID)
4585+
require.NoError(s.T(), err)
4586+
4587+
check.Args(agt.ID).Asserts(rbac.ResourceSystem, policy.ActionRead).Returns(monitor)
4588+
}))
4589+
4590+
s.Run("FetchVolumeResourceMonitor", s.Subtest(func(db database.Store, check *expects) {
4591+
u := dbgen.User(s.T(), db, database.User{})
4592+
o := dbgen.Organization(s.T(), db, database.Organization{})
4593+
tpl := dbgen.Template(s.T(), db, database.Template{
4594+
OrganizationID: o.ID,
4595+
CreatedBy: u.ID,
4596+
})
4597+
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
4598+
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
4599+
OrganizationID: o.ID,
4600+
CreatedBy: u.ID,
4601+
})
4602+
w := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
4603+
TemplateID: tpl.ID,
4604+
OrganizationID: o.ID,
4605+
OwnerID: u.ID,
4606+
})
4607+
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
4608+
Type: database.ProvisionerJobTypeWorkspaceBuild,
4609+
})
4610+
b := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{
4611+
JobID: j.ID,
4612+
WorkspaceID: w.ID,
4613+
TemplateVersionID: tv.ID,
4614+
})
4615+
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
4616+
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
4617+
_, err := db.InsertVolumeResourceMonitor(context.Background(), database.InsertVolumeResourceMonitorParams{
4618+
AgentID: agt.ID,
4619+
Path: "/volume",
4620+
Enabled: true,
4621+
Threshold: 80,
4622+
CreatedAt: dbtime.Now(),
4623+
})
4624+
require.NoError(s.T(), err)
4625+
4626+
monitors, err := db.FetchVolumesResourceMonitorsByAgentID(context.Background(), agt.ID)
4627+
require.NoError(s.T(), err)
4628+
4629+
check.Args(agt.ID).Asserts(rbac.ResourceSystem, policy.ActionRead).Returns(monitor)
4630+
}))
4631+
}

0 commit comments

Comments
 (0)