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

Function TestWorkspaceBuilds

coderd/workspacebuilds_test.go:193–325  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

191}
192
193func TestWorkspaceBuilds(t *testing.T) {
194 t.Parallel()
195 t.Run("Single", func(t *testing.T) {
196 t.Parallel()
197 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
198 first := coderdtest.CreateFirstUser(t, client)
199
200 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
201 defer cancel()
202
203 user, err := client.User(ctx, codersdk.Me)
204 require.NoError(t, err, "fetch me")
205 version := coderdtest.CreateTemplateVersion(t, client, first.OrganizationID, nil)
206 template := coderdtest.CreateTemplate(t, client, first.OrganizationID, version.ID)
207 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
208 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
209 builds, err := client.WorkspaceBuilds(ctx,
210 codersdk.WorkspaceBuildsRequest{WorkspaceID: workspace.ID})
211 require.Len(t, builds, 1)
212 require.Equal(t, int32(1), builds[0].BuildNumber)
213 require.Equal(t, user.Username, builds[0].InitiatorUsername)
214 require.NoError(t, err)
215
216 // Test since
217 builds, err = client.WorkspaceBuilds(ctx,
218 codersdk.WorkspaceBuildsRequest{WorkspaceID: workspace.ID, Since: dbtime.Now().Add(time.Minute)},
219 )
220 require.NoError(t, err)
221 require.Len(t, builds, 0)
222 // Should never be nil for API consistency
223 require.NotNil(t, builds)
224
225 builds, err = client.WorkspaceBuilds(ctx,
226 codersdk.WorkspaceBuildsRequest{WorkspaceID: workspace.ID, Since: dbtime.Now().Add(-time.Hour)},
227 )
228 require.NoError(t, err)
229 require.Len(t, builds, 1)
230 })
231
232 t.Run("DeletedInitiator", func(t *testing.T) {
233 t.Parallel()
234 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
235 first := coderdtest.CreateFirstUser(t, client)
236 second, secondUser := coderdtest.CreateAnotherUser(t, client, first.OrganizationID, rbac.RoleOwner())
237
238 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
239 defer cancel()
240
241 version := coderdtest.CreateTemplateVersion(t, client, first.OrganizationID, nil)
242 template := coderdtest.CreateTemplate(t, client, first.OrganizationID, version.ID)
243 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
244 workspace, err := second.CreateWorkspace(ctx, first.OrganizationID, first.UserID.String(), codersdk.CreateWorkspaceRequest{
245 TemplateID: template.ID,
246 Name: "example",
247 })
248 require.NoError(t, err)
249 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
250

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
NowFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleOwnerFunction · 0.92
CreateWorkspaceBuildFunction · 0.92

Tested by

no test coverage detected