@@ -552,213 +552,7 @@ func TestTemplateEdit(t *testing.T) {
552
552
assert .Equal (t , template .AutostartRequirement .DaysOfWeek , updated .AutostartRequirement .DaysOfWeek )
553
553
})
554
554
})
555
- // TODO(@dean): remove this test when we remove max_ttl
556
- t .Run ("MaxTTL" , func (t * testing.T ) {
557
- t .Parallel ()
558
- t .Run ("BlockedAGPL" , func (t * testing.T ) {
559
- t .Parallel ()
560
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
561
- owner := coderdtest .CreateFirstUser (t , client )
562
- templateAdmin , _ := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID , rbac .RoleTemplateAdmin ())
563
- version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
564
- _ = coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
565
- template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID , func (ctr * codersdk.CreateTemplateRequest ) {
566
- ctr .DefaultTTLMillis = nil
567
- })
568
-
569
- // Test the cli command.
570
- cmdArgs := []string {
571
- "templates" ,
572
- "edit" ,
573
- template .Name ,
574
- "--max-ttl" , "1h" ,
575
- }
576
- inv , root := clitest .New (t , cmdArgs ... )
577
- clitest .SetupConfig (t , templateAdmin , root )
578
555
579
- ctx := testutil .Context (t , testutil .WaitLong )
580
- err := inv .WithContext (ctx ).Run ()
581
- require .Error (t , err )
582
- require .ErrorContains (t , err , "appears to be an AGPL deployment" )
583
-
584
- // Assert that the template metadata did not change.
585
- updated , err := client .Template (context .Background (), template .ID )
586
- require .NoError (t , err )
587
- assert .Equal (t , template .Name , updated .Name )
588
- assert .Equal (t , template .Description , updated .Description )
589
- assert .Equal (t , template .Icon , updated .Icon )
590
- assert .Equal (t , template .DisplayName , updated .DisplayName )
591
- assert .Equal (t , template .DefaultTTLMillis , updated .DefaultTTLMillis )
592
- })
593
-
594
- t .Run ("BlockedNotEntitled" , func (t * testing.T ) {
595
- t .Parallel ()
596
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
597
- owner := coderdtest .CreateFirstUser (t , client )
598
- templateAdmin , _ := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID , rbac .RoleTemplateAdmin ())
599
- version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
600
- _ = coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
601
- template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID , func (ctr * codersdk.CreateTemplateRequest ) {
602
- ctr .DefaultTTLMillis = nil
603
- })
604
-
605
- // Make a proxy server that will return a valid entitlements
606
- // response, but without advanced scheduling entitlement.
607
- proxy := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
608
- if r .URL .Path == "/api/v2/entitlements" {
609
- res := codersdk.Entitlements {
610
- Features : map [codersdk.FeatureName ]codersdk.Feature {},
611
- Warnings : []string {},
612
- Errors : []string {},
613
- HasLicense : true ,
614
- Trial : true ,
615
- RequireTelemetry : false ,
616
- }
617
- for _ , feature := range codersdk .FeatureNames {
618
- res .Features [feature ] = codersdk.Feature {
619
- Entitlement : codersdk .EntitlementNotEntitled ,
620
- Enabled : false ,
621
- Limit : nil ,
622
- Actual : nil ,
623
- }
624
- }
625
- httpapi .Write (r .Context (), w , http .StatusOK , res )
626
- return
627
- }
628
-
629
- // Otherwise, proxy the request to the real API server.
630
- rp := httputil .NewSingleHostReverseProxy (client .URL )
631
- tp := & http.Transport {}
632
- defer tp .CloseIdleConnections ()
633
- rp .Transport = tp
634
- rp .ServeHTTP (w , r )
635
- }))
636
- defer proxy .Close ()
637
-
638
- // Create a new client that uses the proxy server.
639
- proxyURL , err := url .Parse (proxy .URL )
640
- require .NoError (t , err )
641
- proxyClient := codersdk .New (proxyURL )
642
- proxyClient .SetSessionToken (templateAdmin .SessionToken ())
643
- t .Cleanup (proxyClient .HTTPClient .CloseIdleConnections )
644
-
645
- // Test the cli command.
646
- cmdArgs := []string {
647
- "templates" ,
648
- "edit" ,
649
- template .Name ,
650
- "--max-ttl" , "1h" ,
651
- }
652
- inv , root := clitest .New (t , cmdArgs ... )
653
- clitest .SetupConfig (t , proxyClient , root )
654
-
655
- ctx := testutil .Context (t , testutil .WaitLong )
656
- err = inv .WithContext (ctx ).Run ()
657
- require .Error (t , err )
658
- require .ErrorContains (t , err , "license is not entitled" )
659
-
660
- // Assert that the template metadata did not change.
661
- updated , err := client .Template (context .Background (), template .ID )
662
- require .NoError (t , err )
663
- assert .Equal (t , template .Name , updated .Name )
664
- assert .Equal (t , template .Description , updated .Description )
665
- assert .Equal (t , template .Icon , updated .Icon )
666
- assert .Equal (t , template .DisplayName , updated .DisplayName )
667
- assert .Equal (t , template .DefaultTTLMillis , updated .DefaultTTLMillis )
668
- })
669
- t .Run ("Entitled" , func (t * testing.T ) {
670
- t .Parallel ()
671
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
672
- owner := coderdtest .CreateFirstUser (t , client )
673
- templateAdmin , _ := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID , rbac .RoleTemplateAdmin ())
674
- version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , nil )
675
- _ = coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
676
- template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID , func (ctr * codersdk.CreateTemplateRequest ) {
677
- ctr .DefaultTTLMillis = nil
678
- })
679
-
680
- // Make a proxy server that will return a valid entitlements
681
- // response, including a valid advanced scheduling entitlement.
682
- var updateTemplateCalled int64
683
- proxy := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
684
- if r .URL .Path == "/api/v2/entitlements" {
685
- res := codersdk.Entitlements {
686
- Features : map [codersdk.FeatureName ]codersdk.Feature {},
687
- Warnings : []string {},
688
- Errors : []string {},
689
- HasLicense : true ,
690
- Trial : true ,
691
- RequireTelemetry : false ,
692
- }
693
- for _ , feature := range codersdk .FeatureNames {
694
- var one int64 = 1
695
- res .Features [feature ] = codersdk.Feature {
696
- Entitlement : codersdk .EntitlementNotEntitled ,
697
- Enabled : true ,
698
- Limit : & one ,
699
- Actual : & one ,
700
- }
701
- }
702
- httpapi .Write (r .Context (), w , http .StatusOK , res )
703
- return
704
- }
705
- if strings .HasPrefix (r .URL .Path , "/api/v2/templates/" ) {
706
- body , err := io .ReadAll (r .Body )
707
- require .NoError (t , err )
708
- _ = r .Body .Close ()
709
-
710
- var req codersdk.UpdateTemplateMeta
711
- err = json .Unmarshal (body , & req )
712
- require .NoError (t , err )
713
-
714
- r .Body = io .NopCloser (bytes .NewReader (body ))
715
- atomic .AddInt64 (& updateTemplateCalled , 1 )
716
- // We still want to call the real route.
717
- }
718
-
719
- // Otherwise, proxy the request to the real API server.
720
- rp := httputil .NewSingleHostReverseProxy (client .URL )
721
- tp := & http.Transport {}
722
- defer tp .CloseIdleConnections ()
723
- rp .Transport = tp
724
- rp .ServeHTTP (w , r )
725
- }))
726
- defer proxy .Close ()
727
-
728
- // Create a new client that uses the proxy server.
729
- proxyURL , err := url .Parse (proxy .URL )
730
- require .NoError (t , err )
731
- proxyClient := codersdk .New (proxyURL )
732
- proxyClient .SetSessionToken (templateAdmin .SessionToken ())
733
- t .Cleanup (proxyClient .HTTPClient .CloseIdleConnections )
734
-
735
- // Test the cli command.
736
- cmdArgs := []string {
737
- "templates" ,
738
- "edit" ,
739
- template .Name ,
740
- "--max-ttl" , "1h" ,
741
- }
742
- inv , root := clitest .New (t , cmdArgs ... )
743
- clitest .SetupConfig (t , proxyClient , root )
744
-
745
- ctx := testutil .Context (t , testutil .WaitLong )
746
- err = inv .WithContext (ctx ).Run ()
747
- require .NoError (t , err )
748
-
749
- require .EqualValues (t , 1 , atomic .LoadInt64 (& updateTemplateCalled ))
750
-
751
- // Assert that the template metadata did not change. We verify the
752
- // correct request gets sent to the server already.
753
- updated , err := client .Template (context .Background (), template .ID )
754
- require .NoError (t , err )
755
- assert .Equal (t , template .Name , updated .Name )
756
- assert .Equal (t , template .Description , updated .Description )
757
- assert .Equal (t , template .Icon , updated .Icon )
758
- assert .Equal (t , template .DisplayName , updated .DisplayName )
759
- assert .Equal (t , template .DefaultTTLMillis , updated .DefaultTTLMillis )
760
- })
761
- })
762
556
t .Run ("AllowUserScheduling" , func (t * testing.T ) {
763
557
t .Parallel ()
764
558
t .Run ("BlockedAGPL" , func (t * testing.T ) {
0 commit comments