@@ -617,27 +617,56 @@ func TestWorkspaceUpdateAutostop(t *testing.T) {
617
617
618
618
func TestWorkspaceExtendAutostop (t * testing.T ) {
619
619
t .Parallel ()
620
- var (
621
- ctx = context .Background ()
622
- client = coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
623
- user = coderdtest .CreateFirstUser (t , client )
624
- version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
625
- _ = coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
626
- project = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
627
- workspace = coderdtest .CreateWorkspace (t , client , user .OrganizationID , project .ID )
628
- extend = 90 * time .Minute
629
- )
630
-
631
- initTTL := time .Now ()
632
- req := codersdk.PutExtendWorkspaceRequest {
633
- Deadline : initTTL .Add (extend ),
634
- }
635
- err := client .PutExtendWorkspace (ctx , workspace .ID , req )
636
- require .NoError (t , err , "failed to update workspace ttl" )
620
+ t .Run ("OK" , func (t * testing.T ) {
621
+ t .Parallel ()
622
+ var (
623
+ ctx = context .Background ()
624
+ client = coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
625
+ user = coderdtest .CreateFirstUser (t , client )
626
+ version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
627
+ _ = coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
628
+ project = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
629
+ workspace = coderdtest .CreateWorkspace (t , client , user .OrganizationID , project .ID )
630
+ extend = 90 * time .Minute
631
+ _ = coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
632
+ )
633
+
634
+ workspace , err := client .Workspace (ctx , workspace .ID )
635
+ require .NoError (t , err , "fetch provisioned workspace" )
636
+ req := codersdk.PutExtendWorkspaceRequest {
637
+ Deadline : workspace .LatestBuild .UpdatedAt .Add (extend ),
638
+ }
639
+ err = client .PutExtendWorkspace (ctx , workspace .ID , req )
640
+ require .NoError (t , err , "failed to extend workspace" )
641
+
642
+ updated , err := client .Workspace (ctx , workspace .ID )
643
+ require .NoError (t , err , "failed to fetch updated workspace" )
644
+ require .Equal (t , workspace .LatestBuild .Deadline .Add (extend ), updated .LatestBuild .Deadline )
645
+ })
637
646
638
- updated , err := client .Workspace (ctx , workspace .ID )
639
- require .NoError (t , err , "failed to fetch updated workspace" )
640
- require .Equal (t , workspace .LatestBuild .Deadline .Add (extend ), updated .LatestBuild .Deadline )
647
+ t .Run ("DeadlineZero" , func (t * testing.T ) {
648
+ t .Parallel ()
649
+ var (
650
+ ctx = context .Background ()
651
+ client = coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
652
+ user = coderdtest .CreateFirstUser (t , client )
653
+ version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
654
+ _ = coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
655
+ project = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
656
+ workspace = coderdtest .CreateWorkspace (t , client , user .OrganizationID , project .ID )
657
+ _ = coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
658
+ )
659
+
660
+ req := codersdk.PutExtendWorkspaceRequest {
661
+ Deadline : time.Time {},
662
+ }
663
+ err := client .PutExtendWorkspace (ctx , workspace .ID , req )
664
+ require .ErrorContains (t , err , "deadline: required" , "failed to update workspace ttl" )
665
+
666
+ updated , err := client .Workspace (ctx , workspace .ID )
667
+ require .NoError (t , err , "failed to fetch updated workspace" )
668
+ require .Equal (t , workspace .LatestBuild .Deadline , updated .LatestBuild .Deadline )
669
+ })
641
670
}
642
671
643
672
func TestWorkspaceWatcher (t * testing.T ) {
0 commit comments