Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bdd5485

Browse files
committed
dbauthz: migrate initial TestWorkspace subtests to mocked DB
1 parent 3950d2f commit bdd5485

File tree

1 file changed

+68
-138
lines changed

1 file changed

+68
-138
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 68 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1697,144 +1697,74 @@ func (s *MethodTestSuite) TestUser() {
16971697
}
16981698

16991699
func (s *MethodTestSuite) TestWorkspace() {
1700-
s.Run("GetWorkspaceByID", s.Subtest(func(db database.Store, check *expects) {
1701-
u := dbgen.User(s.T(), db, database.User{})
1702-
o := dbgen.Organization(s.T(), db, database.Organization{})
1703-
tpl := dbgen.Template(s.T(), db, database.Template{
1704-
OrganizationID: o.ID,
1705-
CreatedBy: u.ID,
1706-
})
1707-
ws := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
1708-
OwnerID: u.ID,
1709-
OrganizationID: o.ID,
1710-
TemplateID: tpl.ID,
1711-
})
1712-
check.Args(ws.ID).Asserts(ws, policy.ActionRead)
1713-
}))
1714-
s.Run("GetWorkspaceByResourceID", s.Subtest(func(db database.Store, check *expects) {
1715-
u := dbgen.User(s.T(), db, database.User{})
1716-
o := dbgen.Organization(s.T(), db, database.Organization{})
1717-
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{Type: database.ProvisionerJobTypeWorkspaceBuild})
1718-
tpl := dbgen.Template(s.T(), db, database.Template{CreatedBy: u.ID, OrganizationID: o.ID})
1719-
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
1720-
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
1721-
JobID: j.ID,
1722-
OrganizationID: o.ID,
1723-
CreatedBy: u.ID,
1724-
})
1725-
ws := dbgen.Workspace(s.T(), db, database.WorkspaceTable{OwnerID: u.ID, TemplateID: tpl.ID, OrganizationID: o.ID})
1726-
_ = dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: j.ID, TemplateVersionID: tv.ID})
1727-
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: j.ID})
1728-
check.Args(res.ID).Asserts(ws, policy.ActionRead)
1729-
}))
1730-
s.Run("GetWorkspaces", s.Subtest(func(_ database.Store, check *expects) {
1731-
// No asserts here because SQLFilter.
1732-
check.Args(database.GetWorkspacesParams{}).Asserts()
1733-
}))
1734-
s.Run("GetAuthorizedWorkspaces", s.Subtest(func(_ database.Store, check *expects) {
1735-
// No asserts here because SQLFilter.
1736-
check.Args(database.GetWorkspacesParams{}, emptyPreparedAuthorized{}).Asserts()
1737-
}))
1738-
s.Run("GetWorkspacesAndAgentsByOwnerID", s.Subtest(func(db database.Store, check *expects) {
1739-
dbtestutil.DisableForeignKeysAndTriggers(s.T(), db)
1740-
ws := dbgen.Workspace(s.T(), db, database.WorkspaceTable{})
1741-
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
1742-
_ = dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
1743-
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: build.JobID})
1744-
_ = dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
1745-
// No asserts here because SQLFilter.
1746-
check.Args(ws.OwnerID).Asserts()
1747-
}))
1748-
s.Run("GetAuthorizedWorkspacesAndAgentsByOwnerID", s.Subtest(func(db database.Store, check *expects) {
1749-
dbtestutil.DisableForeignKeysAndTriggers(s.T(), db)
1750-
ws := dbgen.Workspace(s.T(), db, database.WorkspaceTable{})
1751-
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
1752-
_ = dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
1753-
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: build.JobID})
1754-
_ = dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
1755-
// No asserts here because SQLFilter.
1756-
check.Args(ws.OwnerID, emptyPreparedAuthorized{}).Asserts()
1757-
}))
1758-
s.Run("GetWorkspaceBuildParametersByBuildIDs", s.Subtest(func(db database.Store, check *expects) {
1759-
// no asserts here because SQLFilter
1760-
check.Args([]uuid.UUID{}).Asserts()
1761-
}))
1762-
s.Run("GetAuthorizedWorkspaceBuildParametersByBuildIDs", s.Subtest(func(db database.Store, check *expects) {
1763-
// no asserts here because SQLFilter
1764-
check.Args([]uuid.UUID{}, emptyPreparedAuthorized{}).Asserts()
1765-
}))
1766-
s.Run("UpdateWorkspaceACLByID", s.Subtest(func(db database.Store, check *expects) {
1767-
u := dbgen.User(s.T(), db, database.User{})
1768-
o := dbgen.Organization(s.T(), db, database.Organization{})
1769-
tpl := dbgen.Template(s.T(), db, database.Template{
1770-
OrganizationID: o.ID,
1771-
CreatedBy: u.ID,
1772-
})
1773-
ws := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
1774-
OwnerID: u.ID,
1775-
OrganizationID: o.ID,
1776-
TemplateID: tpl.ID,
1777-
})
1778-
check.Args(database.UpdateWorkspaceACLByIDParams{
1779-
ID: ws.ID,
1780-
}).Asserts(ws, policy.ActionCreate)
1781-
}))
1782-
s.Run("GetLatestWorkspaceBuildByWorkspaceID", s.Subtest(func(db database.Store, check *expects) {
1783-
u := dbgen.User(s.T(), db, database.User{})
1784-
o := dbgen.Organization(s.T(), db, database.Organization{})
1785-
tpl := dbgen.Template(s.T(), db, database.Template{
1786-
OrganizationID: o.ID,
1787-
CreatedBy: u.ID,
1788-
})
1789-
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
1790-
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
1791-
OrganizationID: o.ID,
1792-
CreatedBy: u.ID,
1793-
})
1794-
w := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
1795-
TemplateID: tpl.ID,
1796-
OrganizationID: o.ID,
1797-
OwnerID: u.ID,
1798-
})
1799-
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
1800-
Type: database.ProvisionerJobTypeWorkspaceBuild,
1801-
})
1802-
b := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{
1803-
JobID: j.ID,
1804-
WorkspaceID: w.ID,
1805-
TemplateVersionID: tv.ID,
1806-
})
1807-
check.Args(w.ID).Asserts(w, policy.ActionRead).Returns(b)
1808-
}))
1809-
s.Run("GetWorkspaceAgentByID", s.Subtest(func(db database.Store, check *expects) {
1810-
u := dbgen.User(s.T(), db, database.User{})
1811-
o := dbgen.Organization(s.T(), db, database.Organization{})
1812-
tpl := dbgen.Template(s.T(), db, database.Template{
1813-
OrganizationID: o.ID,
1814-
CreatedBy: u.ID,
1815-
})
1816-
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
1817-
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
1818-
OrganizationID: o.ID,
1819-
CreatedBy: u.ID,
1820-
})
1821-
w := dbgen.Workspace(s.T(), db, database.WorkspaceTable{
1822-
TemplateID: tpl.ID,
1823-
OrganizationID: o.ID,
1824-
OwnerID: u.ID,
1825-
})
1826-
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
1827-
Type: database.ProvisionerJobTypeWorkspaceBuild,
1828-
})
1829-
b := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{
1830-
JobID: j.ID,
1831-
WorkspaceID: w.ID,
1832-
TemplateVersionID: tv.ID,
1833-
})
1834-
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
1835-
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
1836-
check.Args(agt.ID).Asserts(w, policy.ActionRead).Returns(agt)
1837-
}))
1700+
s.Run("GetWorkspaceByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1701+
ws := testutil.Fake(s.T(), faker, database.Workspace{})
1702+
dbm.EXPECT().GetWorkspaceByID(gomock.Any(), ws.ID).Return(ws, nil).AnyTimes()
1703+
check.Args(ws.ID).Asserts(ws, policy.ActionRead).Returns(ws)
1704+
}))
1705+
s.Run("GetWorkspaceByResourceID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1706+
ws := testutil.Fake(s.T(), faker, database.Workspace{})
1707+
res := testutil.Fake(s.T(), faker, database.WorkspaceResource{})
1708+
dbm.EXPECT().GetWorkspaceByResourceID(gomock.Any(), res.ID).Return(ws, nil).AnyTimes()
1709+
check.Args(res.ID).Asserts(ws, policy.ActionRead).Returns(ws)
1710+
}))
1711+
s.Run("GetWorkspaces", s.Mocked(func(dbm *dbmock.MockStore, _ *gofakeit.Faker, check *expects) {
1712+
arg := database.GetWorkspacesParams{}
1713+
dbm.EXPECT().GetAuthorizedWorkspaces(gomock.Any(), arg, gomock.Any()).Return([]database.GetWorkspacesRow{}, nil).AnyTimes()
1714+
// No asserts here because SQLFilter.
1715+
check.Args(arg).Asserts()
1716+
}))
1717+
s.Run("GetAuthorizedWorkspaces", s.Mocked(func(dbm *dbmock.MockStore, _ *gofakeit.Faker, check *expects) {
1718+
arg := database.GetWorkspacesParams{}
1719+
dbm.EXPECT().GetAuthorizedWorkspaces(gomock.Any(), arg, gomock.Any()).Return([]database.GetWorkspacesRow{}, nil).AnyTimes()
1720+
// No asserts here because SQLFilter.
1721+
check.Args(arg, emptyPreparedAuthorized{}).Asserts()
1722+
}))
1723+
s.Run("GetWorkspacesAndAgentsByOwnerID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1724+
ws := testutil.Fake(s.T(), faker, database.Workspace{})
1725+
dbm.EXPECT().GetAuthorizedWorkspacesAndAgentsByOwnerID(gomock.Any(), ws.OwnerID, gomock.Any()).Return([]database.GetWorkspacesAndAgentsByOwnerIDRow{}, nil).AnyTimes()
1726+
// No asserts here because SQLFilter.
1727+
check.Args(ws.OwnerID).Asserts()
1728+
}))
1729+
s.Run("GetAuthorizedWorkspacesAndAgentsByOwnerID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1730+
ws := testutil.Fake(s.T(), faker, database.Workspace{})
1731+
dbm.EXPECT().GetAuthorizedWorkspacesAndAgentsByOwnerID(gomock.Any(), ws.OwnerID, gomock.Any()).Return([]database.GetWorkspacesAndAgentsByOwnerIDRow{}, nil).AnyTimes()
1732+
// No asserts here because SQLFilter.
1733+
check.Args(ws.OwnerID, emptyPreparedAuthorized{}).Asserts()
1734+
}))
1735+
s.Run("GetWorkspaceBuildParametersByBuildIDs", s.Mocked(func(dbm *dbmock.MockStore, _ *gofakeit.Faker, check *expects) {
1736+
ids := []uuid.UUID{}
1737+
dbm.EXPECT().GetAuthorizedWorkspaceBuildParametersByBuildIDs(gomock.Any(), ids, gomock.Any()).Return([]database.WorkspaceBuildParameter{}, nil).AnyTimes()
1738+
// no asserts here because SQLFilter
1739+
check.Args(ids).Asserts()
1740+
}))
1741+
s.Run("GetAuthorizedWorkspaceBuildParametersByBuildIDs", s.Mocked(func(dbm *dbmock.MockStore, _ *gofakeit.Faker, check *expects) {
1742+
ids := []uuid.UUID{}
1743+
dbm.EXPECT().GetAuthorizedWorkspaceBuildParametersByBuildIDs(gomock.Any(), ids, gomock.Any()).Return([]database.WorkspaceBuildParameter{}, nil).AnyTimes()
1744+
// no asserts here because SQLFilter
1745+
check.Args(ids, emptyPreparedAuthorized{}).Asserts()
1746+
}))
1747+
s.Run("UpdateWorkspaceACLByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1748+
w := testutil.Fake(s.T(), faker, database.Workspace{})
1749+
arg := database.UpdateWorkspaceACLByIDParams{ID: w.ID}
1750+
dbm.EXPECT().GetWorkspaceByID(gomock.Any(), w.ID).Return(w, nil).AnyTimes()
1751+
dbm.EXPECT().UpdateWorkspaceACLByID(gomock.Any(), arg).Return(nil).AnyTimes()
1752+
check.Args(arg).Asserts(w, policy.ActionCreate)
1753+
}))
1754+
s.Run("GetLatestWorkspaceBuildByWorkspaceID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1755+
w := testutil.Fake(s.T(), faker, database.Workspace{})
1756+
b := testutil.Fake(s.T(), faker, database.WorkspaceBuild{WorkspaceID: w.ID})
1757+
dbm.EXPECT().GetWorkspaceByID(gomock.Any(), w.ID).Return(w, nil).AnyTimes()
1758+
dbm.EXPECT().GetLatestWorkspaceBuildByWorkspaceID(gomock.Any(), w.ID).Return(b, nil).AnyTimes()
1759+
check.Args(w.ID).Asserts(w, policy.ActionRead).Returns(b)
1760+
}))
1761+
s.Run("GetWorkspaceAgentByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1762+
w := testutil.Fake(s.T(), faker, database.Workspace{})
1763+
agt := testutil.Fake(s.T(), faker, database.WorkspaceAgent{})
1764+
dbm.EXPECT().GetWorkspaceByAgentID(gomock.Any(), agt.ID).Return(w, nil).AnyTimes()
1765+
dbm.EXPECT().GetWorkspaceAgentByID(gomock.Any(), agt.ID).Return(agt, nil).AnyTimes()
1766+
check.Args(agt.ID).Asserts(w, policy.ActionRead).Returns(agt)
1767+
}))
18381768
s.Run("GetWorkspaceAgentsByWorkspaceAndBuildNumber", s.Subtest(func(db database.Store, check *expects) {
18391769
u := dbgen.User(s.T(), db, database.User{})
18401770
o := dbgen.Organization(s.T(), db, database.Organization{})

0 commit comments

Comments
 (0)