(t *testing.T, db database.Store, builds []workspaceBuildArgs)
| 372 | } |
| 373 | |
| 374 | func (s *setup) createWorkspace(t *testing.T, db database.Store, builds []workspaceBuildArgs) database.WorkspaceTable { |
| 375 | // Create template version first |
| 376 | tv := dbfake.TemplateVersion(t, db). |
| 377 | Seed(database.TemplateVersion{ |
| 378 | OrganizationID: s.org.ID, |
| 379 | CreatedBy: s.usr.ID, |
| 380 | }). |
| 381 | Do() |
| 382 | |
| 383 | wrk := dbgen.Workspace(t, db, database.WorkspaceTable{ |
| 384 | OwnerID: s.usr.ID, |
| 385 | OrganizationID: s.org.ID, |
| 386 | TemplateID: tv.Template.ID, |
| 387 | CreatedAt: builds[0].at, |
| 388 | }) |
| 389 | |
| 390 | for i, b := range builds { |
| 391 | builder := dbfake.WorkspaceBuild(t, db, wrk). |
| 392 | Seed(database.WorkspaceBuild{ |
| 393 | CreatedAt: b.at, |
| 394 | UpdatedAt: b.at, |
| 395 | TemplateVersionID: tv.TemplateVersion.ID, |
| 396 | //nolint:gosec // this will not overflow |
| 397 | BuildNumber: int32(i) + 1, |
| 398 | Transition: b.transition, |
| 399 | InitiatorID: s.usr.ID, |
| 400 | }). |
| 401 | Succeeded(dbfake.WithJobCompletedAt(b.at)) |
| 402 | |
| 403 | // Set job status based on the build args |
| 404 | switch b.jobStatus { |
| 405 | case database.ProvisionerJobStatusCanceled: |
| 406 | builder = builder.Canceled(dbfake.WithJobCompletedAt(b.at)) |
| 407 | case database.ProvisionerJobStatusFailed: |
| 408 | builder = builder.Failed(dbfake.WithJobError("fake error"), dbfake.WithJobCompletedAt(b.at)) |
| 409 | // default: Succeeded (the builder's default) |
| 410 | } |
| 411 | |
| 412 | builder.Do() |
| 413 | } |
| 414 | |
| 415 | return wrk |
| 416 | } |
no test coverage detected