@@ -684,56 +684,34 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
684
684
685
685
t .Run ("Cancel with expect_state=pending - should fail with 412" , func (t * testing.T ) {
686
686
t .Parallel ()
687
- if ! dbtestutil .WillUsePostgres () {
688
- t .Skip ("this test requires postgres" )
689
- }
690
687
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 })
701
689
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
+ })
703
699
coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
704
700
template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
705
701
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
715
703
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 ()
725
706
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)
730
707
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
733
711
}, testutil .WaitShort , testutil .IntervalFast )
734
712
735
713
// 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 {
737
715
ExpectStatus : codersdk .CancelWorkspaceBuildStatusPending ,
738
716
})
739
717
// Then: the request should fail with 412.
0 commit comments