@@ -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.