Skip to content

Commit 02d1576

Browse files
committed
chore(coderd/database): add test GetRunningPrebuiltWorkspaces
1 parent f89e057 commit 02d1576

File tree

1 file changed

+92
-3
lines changed

1 file changed

+92
-3
lines changed

coderd/database/querier_test.go

Lines changed: 92 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3716,9 +3716,9 @@ func createPrebuiltWorkspace(
37163716
job := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
37173717
Type: database.ProvisionerJobTypeWorkspaceBuild,
37183718
OrganizationID: orgID,
3719-
3720-
CreatedAt: now.Add(-1 * time.Minute),
3721-
Error: jobError,
3719+
CreatedAt: now.Add(-1 * time.Minute),
3720+
CompletedAt: sql.NullTime{Time: now, Valid: true},
3721+
Error: jobError,
37223722
})
37233723

37243724
// create ready agents
@@ -3888,6 +3888,95 @@ func TestWorkspacePrebuildsView(t *testing.T) {
38883888
}
38893889
}
38903890

3891+
func TestGetRunningPrebuiltWorkspaces(t *testing.T) {
3892+
t.Parallel()
3893+
if !dbtestutil.WillUsePostgres() {
3894+
t.SkipNow()
3895+
}
3896+
3897+
now := dbtime.Now()
3898+
orgID := uuid.New()
3899+
userID := uuid.New()
3900+
3901+
testCases := []struct {
3902+
name string
3903+
readyAgents int
3904+
notReadyAgents int
3905+
expectRows int
3906+
expectReady bool
3907+
}{
3908+
{
3909+
name: "one ready agent",
3910+
readyAgents: 1,
3911+
notReadyAgents: 0,
3912+
expectRows: 1,
3913+
expectReady: true,
3914+
},
3915+
{
3916+
name: "one not ready agent",
3917+
readyAgents: 0,
3918+
notReadyAgents: 1,
3919+
expectRows: 1,
3920+
expectReady: false,
3921+
},
3922+
{
3923+
name: "one ready, one not ready",
3924+
readyAgents: 1,
3925+
notReadyAgents: 1,
3926+
expectRows: 1,
3927+
expectReady: false,
3928+
},
3929+
{
3930+
name: "both ready",
3931+
readyAgents: 2,
3932+
notReadyAgents: 0,
3933+
expectRows: 1,
3934+
expectReady: true,
3935+
},
3936+
{
3937+
name: "five ready, one not ready",
3938+
readyAgents: 5,
3939+
notReadyAgents: 1,
3940+
expectRows: 1,
3941+
expectReady: false,
3942+
},
3943+
}
3944+
3945+
for _, tc := range testCases {
3946+
t.Run(tc.name, func(t *testing.T) {
3947+
t.Parallel()
3948+
3949+
sqlDB := testSQLDB(t)
3950+
err := migrations.Up(sqlDB)
3951+
require.NoError(t, err)
3952+
db := database.New(sqlDB)
3953+
3954+
ctx := testutil.Context(t, testutil.WaitShort)
3955+
3956+
dbgen.Organization(t, db, database.Organization{
3957+
ID: orgID,
3958+
})
3959+
dbgen.User(t, db, database.User{
3960+
ID: userID,
3961+
})
3962+
3963+
tmpl := createTemplate(t, db, orgID, userID)
3964+
tmplV1 := createTmplVersionAndPreset(t, db, tmpl, tmpl.ActiveVersionID, now, nil)
3965+
createPrebuiltWorkspace(ctx, t, db, tmpl, tmplV1, orgID, now, &createPrebuiltWorkspaceOpts{
3966+
readyAgents: tc.readyAgents,
3967+
notReadyAgents: tc.notReadyAgents,
3968+
})
3969+
3970+
workspacePrebuilds, err := db.GetRunningPrebuiltWorkspaces(ctx)
3971+
require.NoError(t, err)
3972+
require.Len(t, workspacePrebuilds, tc.expectRows)
3973+
if tc.expectRows > 0 {
3974+
require.Equal(t, tc.expectReady, workspacePrebuilds[0].Ready)
3975+
}
3976+
})
3977+
}
3978+
}
3979+
38913980
func TestGetPresetsBackoff(t *testing.T) {
38923981
t.Parallel()
38933982
if !dbtestutil.WillUsePostgres() {

0 commit comments

Comments
 (0)