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

Function TestGetRunningPrebuiltWorkspaces

coderd/database/querier_test.go:8001–8092  ·  view source on GitHub ↗

TestGetRunningPrebuiltWorkspaces ensures the correct behavior of the GetRunningPrebuiltWorkspaces query.

(t *testing.T)

Source from the content-addressed store, hash-verified

7999// TestGetRunningPrebuiltWorkspaces ensures the correct behavior of the
8000// GetRunningPrebuiltWorkspaces query.
8001func TestGetRunningPrebuiltWorkspaces(t *testing.T) {
8002 t.Parallel()
8003
8004 ctx := testutil.Context(t, testutil.WaitLong)
8005 db, _ := dbtestutil.NewDB(t)
8006 now := dbtime.Now()
8007
8008 // Given: a prebuilt workspace with a successful start build and a stop build.
8009 org := dbgen.Organization(t, db, database.Organization{})
8010 user := dbgen.User(t, db, database.User{})
8011 template := dbgen.Template(t, db, database.Template{
8012 CreatedBy: user.ID,
8013 OrganizationID: org.ID,
8014 })
8015 templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
8016 TemplateID: uuid.NullUUID{UUID: template.ID, Valid: true},
8017 OrganizationID: org.ID,
8018 CreatedBy: user.ID,
8019 })
8020 preset := dbgen.Preset(t, db, database.InsertPresetParams{
8021 TemplateVersionID: templateVersion.ID,
8022 DesiredInstances: sql.NullInt32{Int32: 1, Valid: true},
8023 })
8024
8025 setupFixture := func(t *testing.T, db database.Store, name string, deleted bool, transition database.WorkspaceTransition, jobStatus database.ProvisionerJobStatus) database.WorkspaceTable {
8026 t.Helper()
8027 ws := dbgen.Workspace(t, db, database.WorkspaceTable{
8028 OwnerID: database.PrebuildsSystemUserID,
8029 TemplateID: template.ID,
8030 Name: name,
8031 Deleted: deleted,
8032 })
8033 var canceledAt sql.NullTime
8034 var jobError sql.NullString
8035 switch jobStatus {
8036 case database.ProvisionerJobStatusFailed:
8037 jobError = sql.NullString{String: assert.AnError.Error(), Valid: true}
8038 case database.ProvisionerJobStatusCanceled:
8039 canceledAt = sql.NullTime{Time: now, Valid: true}
8040 }
8041 pj := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
8042 OrganizationID: org.ID,
8043 InitiatorID: database.PrebuildsSystemUserID,
8044 Provisioner: database.ProvisionerTypeEcho,
8045 Type: database.ProvisionerJobTypeWorkspaceBuild,
8046 StartedAt: sql.NullTime{Time: now.Add(-time.Minute), Valid: true},
8047 CanceledAt: canceledAt,
8048 CompletedAt: sql.NullTime{Time: now, Valid: true},
8049 Error: jobError,
8050 })
8051 wb := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
8052 WorkspaceID: ws.ID,
8053 TemplateVersionID: templateVersion.ID,
8054 TemplateVersionPresetID: uuid.NullUUID{UUID: preset.ID, Valid: true},
8055 JobID: pj.ID,
8056 BuildNumber: 1,
8057 Transition: transition,
8058 InitiatorID: database.PrebuildsSystemUserID,

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
NewDBFunction · 0.92
NowFunction · 0.92
OrganizationFunction · 0.92
UserFunction · 0.92
TemplateFunction · 0.92
TemplateVersionFunction · 0.92
PresetFunction · 0.92
WorkspaceFunction · 0.92
ProvisionerJobFunction · 0.92
WorkspaceBuildFunction · 0.92
WorkspaceBuildFunction · 0.92

Tested by

no test coverage detected