MCPcopy Index your code
hub / github.com/coder/coder / TestProvisionerJob

Method TestProvisionerJob

coderd/database/dbauthz/dbauthz_test.go:1905–2059  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1903}
1904
1905func (s *MethodTestSuite) TestProvisionerJob() {
1906 s.Run("ArchiveUnusedTemplateVersions", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1907 tpl := testutil.Fake(s.T(), faker, database.Template{})
1908 v := testutil.Fake(s.T(), faker, database.TemplateVersion{TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}})
1909 arg := database.ArchiveUnusedTemplateVersionsParams{UpdatedAt: dbtime.Now(), TemplateID: tpl.ID, TemplateVersionID: v.ID, JobStatus: database.NullProvisionerJobStatus{}}
1910 dbm.EXPECT().GetTemplateByID(gomock.Any(), tpl.ID).Return(tpl, nil).AnyTimes()
1911 dbm.EXPECT().ArchiveUnusedTemplateVersions(gomock.Any(), arg).Return([]uuid.UUID{}, nil).AnyTimes()
1912 check.Args(arg).Asserts(tpl.RBACObject(), policy.ActionUpdate)
1913 }))
1914 s.Run("UnarchiveTemplateVersion", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1915 tpl := testutil.Fake(s.T(), faker, database.Template{})
1916 v := testutil.Fake(s.T(), faker, database.TemplateVersion{TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}, Archived: true})
1917 arg := database.UnarchiveTemplateVersionParams{UpdatedAt: dbtime.Now(), TemplateVersionID: v.ID}
1918 dbm.EXPECT().GetTemplateVersionByID(gomock.Any(), v.ID).Return(v, nil).AnyTimes()
1919 dbm.EXPECT().GetTemplateByID(gomock.Any(), tpl.ID).Return(tpl, nil).AnyTimes()
1920 dbm.EXPECT().UnarchiveTemplateVersion(gomock.Any(), arg).Return(nil).AnyTimes()
1921 check.Args(arg).Asserts(tpl.RBACObject(), policy.ActionUpdate)
1922 }))
1923 s.Run("Build/GetProvisionerJobByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1924 ws := testutil.Fake(s.T(), faker, database.Workspace{})
1925 j := testutil.Fake(s.T(), faker, database.ProvisionerJob{Type: database.ProvisionerJobTypeWorkspaceBuild})
1926 build := testutil.Fake(s.T(), faker, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: j.ID})
1927 dbm.EXPECT().GetProvisionerJobByID(gomock.Any(), j.ID).Return(j, nil).AnyTimes()
1928 dbm.EXPECT().GetWorkspaceBuildByJobID(gomock.Any(), j.ID).Return(build, nil).AnyTimes()
1929 dbm.EXPECT().GetWorkspaceByID(gomock.Any(), build.WorkspaceID).Return(ws, nil).AnyTimes()
1930 check.Args(j.ID).Asserts(ws, policy.ActionRead).Returns(j)
1931 }))
1932 s.Run("TemplateVersion/GetProvisionerJobByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1933 tpl := testutil.Fake(s.T(), faker, database.Template{})
1934 j := testutil.Fake(s.T(), faker, database.ProvisionerJob{Type: database.ProvisionerJobTypeTemplateVersionImport})
1935 v := testutil.Fake(s.T(), faker, database.TemplateVersion{JobID: j.ID, TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}})
1936 dbm.EXPECT().GetProvisionerJobByID(gomock.Any(), j.ID).Return(j, nil).AnyTimes()
1937 dbm.EXPECT().GetTemplateVersionByJobID(gomock.Any(), j.ID).Return(v, nil).AnyTimes()
1938 dbm.EXPECT().GetTemplateByID(gomock.Any(), tpl.ID).Return(tpl, nil).AnyTimes()
1939 check.Args(j.ID).Asserts(v.RBACObject(tpl), policy.ActionRead).Returns(j)
1940 }))
1941 s.Run("TemplateVersionDryRun/GetProvisionerJobByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1942 tpl := testutil.Fake(s.T(), faker, database.Template{})
1943 j := testutil.Fake(s.T(), faker, database.ProvisionerJob{Type: database.ProvisionerJobTypeTemplateVersionDryRun})
1944 v := testutil.Fake(s.T(), faker, database.TemplateVersion{JobID: j.ID, TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}})
1945 j.Input = must(json.Marshal(struct {
1946 TemplateVersionID uuid.UUID `json:"template_version_id"`
1947 }{TemplateVersionID: v.ID}))
1948 dbm.EXPECT().GetProvisionerJobByID(gomock.Any(), j.ID).Return(j, nil).AnyTimes()
1949 dbm.EXPECT().GetTemplateVersionByID(gomock.Any(), v.ID).Return(v, nil).AnyTimes()
1950 dbm.EXPECT().GetTemplateByID(gomock.Any(), tpl.ID).Return(tpl, nil).AnyTimes()
1951 check.Args(j.ID).Asserts(v.RBACObject(tpl), policy.ActionRead).Returns(j)
1952 }))
1953 s.Run("Build/UpdateProvisionerJobWithCancelByID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
1954 tpl := testutil.Fake(s.T(), faker, database.Template{AllowUserCancelWorkspaceJobs: true})
1955 ws := testutil.Fake(s.T(), faker, database.Workspace{TemplateID: tpl.ID})
1956 j := testutil.Fake(s.T(), faker, database.ProvisionerJob{Type: database.ProvisionerJobTypeWorkspaceBuild})
1957 build := testutil.Fake(s.T(), faker, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: ws.ID})
1958 arg := database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}
1959
1960 dbm.EXPECT().GetProvisionerJobByID(gomock.Any(), j.ID).Return(j, nil).AnyTimes()
1961 dbm.EXPECT().GetWorkspaceBuildByJobID(gomock.Any(), j.ID).Return(build, nil).AnyTimes()
1962 dbm.EXPECT().GetWorkspaceByID(gomock.Any(), ws.ID).Return(ws, nil).AnyTimes()

Callers

nothing calls this directly

Calls 15

MockedMethod · 0.95
FakeFunction · 0.92
NowFunction · 0.92
AssertsMethod · 0.80
ArgsMethod · 0.80
ReturnsMethod · 0.80
RBACObjectNoTemplateMethod · 0.80
mustFunction · 0.70
RunMethod · 0.65
GetTemplateByIDMethod · 0.65
RBACObjectMethod · 0.65

Tested by

no test coverage detected