Skip to content

Commit 4d7af66

Browse files
committed
fix: tests after merge of #19252
1 parent acb1bc2 commit 4d7af66

File tree

1 file changed

+27
-31
lines changed

1 file changed

+27
-31
lines changed

enterprise/cli/prebuilds_test.go

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/coder/coder/v2/coderd/database"
1717
"github.com/coder/coder/v2/coderd/database/dbauthz"
1818
"github.com/coder/coder/v2/coderd/database/dbfake"
19-
"github.com/coder/coder/v2/coderd/database/dbtestutil"
19+
"github.com/coder/coder/v2/coderd/database/dbgen"
2020
"github.com/coder/coder/v2/coderd/database/dbtime"
2121
"github.com/coder/coder/v2/coderd/util/ptr"
2222
"github.com/coder/coder/v2/codersdk"
@@ -361,10 +361,6 @@ func TestPrebuildsSettingsAPI(t *testing.T) {
361361
func TestSchedulePrebuilds(t *testing.T) {
362362
t.Parallel()
363363

364-
if !dbtestutil.WillUsePostgres() {
365-
t.Skip("this test requires postgres")
366-
}
367-
368364
cases := []struct {
369365
name string
370366
cliErrorMsg string
@@ -384,23 +380,24 @@ func TestSchedulePrebuilds(t *testing.T) {
384380
return []string{"schedule", "stop", workspaceName, "8h30m"}
385381
},
386382
},
387-
//{
388-
// name: "ExtendPrebuildError",
389-
// cliErrorMsg: "extend configuration is not supported for prebuilt workspaces",
390-
// cmdArgs: func(workspaceName string) []string {
391-
// return []string{"schedule", "extend", workspaceName, "90m"}
392-
// },
393-
// },
383+
{
384+
name: "ExtendPrebuildError",
385+
cliErrorMsg: "extend configuration is not supported for prebuilt workspaces",
386+
cmdArgs: func(workspaceName string) []string {
387+
return []string{"schedule", "extend", workspaceName, "90m"}
388+
},
389+
},
394390
}
395391

396392
for _, tc := range cases {
397393
tc := tc
398394
t.Run(tc.name, func(t *testing.T) {
399395
t.Parallel()
400396

401-
// Setup
402397
clock := quartz.NewMock(t)
403398
clock.Set(dbtime.Now())
399+
400+
// Setup
404401
client, db, owner := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{
405402
Options: &coderdtest.Options{
406403
IncludeProvisionerDaemon: true,
@@ -415,31 +412,28 @@ func TestSchedulePrebuilds(t *testing.T) {
415412

416413
// Given: a template and a template version with preset and a prebuilt workspace
417414
presetID := uuid.New()
418-
tv := dbfake.TemplateVersion(t, db).Seed(database.TemplateVersion{
419-
OrganizationID: owner.OrganizationID,
420-
CreatedBy: owner.UserID,
421-
}).Preset(database.TemplateVersionPreset{
422-
ID: presetID,
423-
DesiredInstances: sql.NullInt32{
424-
Int32: 1,
425-
Valid: true,
426-
},
427-
}).Do()
428-
415+
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
416+
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
417+
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
418+
dbgen.Preset(t, db, database.InsertPresetParams{
419+
ID: presetID,
420+
TemplateVersionID: version.ID,
421+
DesiredInstances: sql.NullInt32{Int32: 1, Valid: true},
422+
})
429423
workspaceBuild := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
430424
OwnerID: database.PrebuildsSystemUserID,
431-
TemplateID: tv.Template.ID,
425+
TemplateID: template.ID,
432426
}).Seed(database.WorkspaceBuild{
433-
TemplateVersionID: tv.TemplateVersion.ID,
427+
TemplateVersionID: version.ID,
434428
TemplateVersionPresetID: uuid.NullUUID{
435429
UUID: presetID,
436430
Valid: true,
437431
},
438-
Deadline: clock.Now().Add(time.Hour),
439432
}).WithAgent(func(agent []*proto.Agent) []*proto.Agent {
440433
return agent
441434
}).Do()
442435

436+
// Mark the prebuilt workspace's agent as ready so the prebuild can be claimed
443437
// nolint:gocritic
444438
ctx := dbauthz.AsSystemRestricted(testutil.Context(t, testutil.WaitLong))
445439
agent, err := db.GetWorkspaceAgentAndLatestBuildByAuthToken(ctx, uuid.MustParse(workspaceBuild.AgentToken))
@@ -449,6 +443,8 @@ func TestSchedulePrebuilds(t *testing.T) {
449443
LifecycleState: database.WorkspaceAgentLifecycleStateReady,
450444
})
451445
require.NoError(t, err)
446+
447+
// Given: a prebuilt workspace
452448
prebuild := coderdtest.MustWorkspace(t, client, workspaceBuild.Workspace.ID)
453449

454450
// When: running the schedule command over a prebuilt workspace
@@ -463,20 +459,20 @@ func TestSchedulePrebuilds(t *testing.T) {
463459
}()
464460
<-doneChan
465461

466-
// Then: return an error
462+
// Then: an error should be returned, with an error message specific to the lifecycle parameter
467463
require.Error(t, runErr)
468464
require.Contains(t, runErr.Error(), tc.cliErrorMsg)
469465

470-
// Given: a user claims the prebuilt workspace
466+
// Given: the prebuilt workspace is claimed by a user
471467
user, err := client.User(ctx, "testUser")
472468
require.NoError(t, err)
473469
claimedWorkspace, err := client.CreateUserWorkspace(ctx, user.ID.String(), codersdk.CreateWorkspaceRequest{
474-
TemplateVersionID: tv.TemplateVersion.ID,
470+
TemplateVersionID: version.ID,
475471
TemplateVersionPresetID: presetID,
476472
Name: coderdtest.RandomUsername(t),
477473
// The 'extend' command requires the workspace to have an existing deadline.
478474
// To ensure this, we set the workspace's TTL to 1 hour.
479-
TTLMillis: ptr.Ref[int64](3600000),
475+
TTLMillis: ptr.Ref[int64](time.Hour.Milliseconds()),
480476
})
481477
require.NoError(t, err)
482478
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, claimedWorkspace.LatestBuild.ID)

0 commit comments

Comments
 (0)