Skip to content

Commit 42170ab

Browse files
committed
Fix unit test
1 parent 86a34df commit 42170ab

File tree

1 file changed

+17
-39
lines changed

1 file changed

+17
-39
lines changed

coderd/workspacebuilds_test.go

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -684,56 +684,34 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
684684

685685
t.Run("Cancel with expect_state=pending - should fail with 412", func(t *testing.T) {
686686
t.Parallel()
687-
if !dbtestutil.WillUsePostgres() {
688-
t.Skip("this test requires postgres")
689-
}
690687

691-
// Given: a coderd instance with a provisioner daemon
692-
store, ps, db := dbtestutil.NewDBWithSQLDB(t)
693-
client, closeDaemon, api := coderdtest.NewWithAPI(t, &coderdtest.Options{
694-
Database: store,
695-
Pubsub: ps,
696-
IncludeProvisionerDaemon: true,
697-
})
698-
defer closeDaemon.Close()
699-
700-
// Given: a user, template, and workspace
688+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
701689
user := coderdtest.CreateFirstUser(t, client)
702-
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
690+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
691+
Parse: echo.ParseComplete,
692+
ProvisionApply: []*proto.Response{{
693+
Type: &proto.Response_Log{
694+
Log: &proto.Log{},
695+
},
696+
}},
697+
ProvisionPlan: echo.PlanComplete,
698+
})
703699
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
704700
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
705701
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
706-
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
707-
708-
// Stop the provisioner daemon.
709-
require.NoError(t, closeDaemon.Close())
710-
ctx := testutil.Context(t, testutil.WaitLong)
711-
712-
// Given: no provisioner daemons exist.
713-
_, err := db.ExecContext(ctx, `DELETE FROM provisioner_daemons;`)
714-
require.NoError(t, err)
702+
var build codersdk.WorkspaceBuild
715703

716-
// When: a new workspace build is created
717-
build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
718-
TemplateVersionID: template.ActiveVersionID,
719-
Transition: codersdk.WorkspaceTransitionStart,
720-
})
721-
// Then: the request should succeed.
722-
require.NoError(t, err)
723-
// Then: the provisioner job should remain pending.
724-
require.Equal(t, codersdk.ProvisionerJobPending, build.Job.Status)
704+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
705+
defer cancel()
725706

726-
// When: a provisioner daemon is started
727-
daemon := coderdtest.NewProvisionerDaemon(t, api)
728-
defer daemon.Close()
729-
// Then: the job should be acquired (status changes from pending)
730707
require.Eventually(t, func() bool {
731-
build, err = client.WorkspaceBuild(ctx, build.ID)
732-
return err == nil && build.Job.Status != codersdk.ProvisionerJobPending
708+
var err error
709+
build, err = client.WorkspaceBuild(ctx, workspace.LatestBuild.ID)
710+
return assert.NoError(t, err) && build.Job.Status == codersdk.ProvisionerJobRunning
733711
}, testutil.WaitShort, testutil.IntervalFast)
734712

735713
// When: a cancel request is made with expect_state=pending
736-
err = client.CancelWorkspaceBuild(ctx, build.ID, codersdk.CancelWorkspaceBuildRequest{
714+
err := client.CancelWorkspaceBuild(ctx, build.ID, codersdk.CancelWorkspaceBuildRequest{
737715
ExpectStatus: codersdk.CancelWorkspaceBuildStatusPending,
738716
})
739717
// Then: the request should fail with 412.

0 commit comments

Comments
 (0)