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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy