createTaskInStatus creates a task in the specified status using dbfake.
(t *testing.T, db database.Store, orgID, ownerID uuid.UUID, status codersdk.TaskStatus)
| 417 | |
| 418 | // createTaskInStatus creates a task in the specified status using dbfake. |
| 419 | func createTaskInStatus(t *testing.T, db database.Store, orgID, ownerID uuid.UUID, status codersdk.TaskStatus) codersdk.Task { |
| 420 | t.Helper() |
| 421 | |
| 422 | builder := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 423 | OrganizationID: orgID, |
| 424 | OwnerID: ownerID, |
| 425 | }). |
| 426 | WithTask(database.TaskTable{ |
| 427 | OrganizationID: orgID, |
| 428 | OwnerID: ownerID, |
| 429 | }, nil) |
| 430 | |
| 431 | switch status { |
| 432 | case codersdk.TaskStatusPending: |
| 433 | builder = builder.Pending() |
| 434 | case codersdk.TaskStatusInitializing: |
| 435 | builder = builder.Starting() |
| 436 | case codersdk.TaskStatusPaused: |
| 437 | builder = builder.Seed(database.WorkspaceBuild{ |
| 438 | Transition: database.WorkspaceTransitionStop, |
| 439 | }) |
| 440 | default: |
| 441 | require.Fail(t, "unsupported task status in test helper", "status: %s", status) |
| 442 | } |
| 443 | |
| 444 | resp := builder.Do() |
| 445 | |
| 446 | return codersdk.Task{ |
| 447 | ID: resp.Task.ID, |
| 448 | Name: resp.Task.Name, |
| 449 | OrganizationID: resp.Task.OrganizationID, |
| 450 | OwnerID: resp.Task.OwnerID, |
| 451 | WorkspaceID: resp.Task.WorkspaceID, |
| 452 | Status: status, |
| 453 | } |
| 454 | } |
| 455 | |
| 456 | // createAITaskTemplate creates a template configured for AI tasks with a sidebar app. |
| 457 | func createAITaskTemplate(t *testing.T, client *codersdk.Client, orgID uuid.UUID, opts ...aiTemplateOpt) codersdk.Template { |