@@ -241,7 +241,9 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
241
241
})
242
242
t .Run ("AlreadyCanceled" , func (t * testing.T ) {
243
243
t .Parallel ()
244
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
244
+ client := coderdtest .New (t , & coderdtest.Options {
245
+ IncludeProvisionerDaemon : true ,
246
+ })
245
247
user := coderdtest .CreateFirstUser (t , client )
246
248
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
247
249
Parse : echo .ParseComplete ,
@@ -255,15 +257,7 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
255
257
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
256
258
defer cancel ()
257
259
258
- require .Eventually (t , func () bool {
259
- var err error
260
- version , err = client .TemplateVersion (ctx , version .ID )
261
- if ! assert .NoError (t , err ) {
262
- return false
263
- }
264
- t .Logf ("Status: %s" , version .Job .Status )
265
- return version .Job .Status == codersdk .ProvisionerJobRunning
266
- }, testutil .WaitShort , testutil .IntervalFast )
260
+ coderdtest .AwaitTemplateVersionJobRunning (t , client , version .ID )
267
261
err := client .CancelTemplateVersion (ctx , version .ID )
268
262
require .NoError (t , err )
269
263
err = client .CancelTemplateVersion (ctx , version .ID )
@@ -280,7 +274,9 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
280
274
// Running -> Canceling is the best we can do for now.
281
275
t .Run ("Canceling" , func (t * testing.T ) {
282
276
t .Parallel ()
283
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
277
+ client := coderdtest .New (t , & coderdtest.Options {
278
+ IncludeProvisionerDaemon : true ,
279
+ })
284
280
user := coderdtest .CreateFirstUser (t , client )
285
281
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
286
282
Parse : echo .ParseComplete ,
@@ -557,13 +553,60 @@ func TestPatchActiveTemplateVersion(t *testing.T) {
557
553
require .Equal (t , http .StatusNotFound , apiErr .StatusCode ())
558
554
})
559
555
560
- t .Run ("DoesNotBelong " , func (t * testing.T ) {
556
+ t .Run ("CanceledBuild " , func (t * testing.T ) {
561
557
t .Parallel ()
562
558
client := coderdtest .New (t , nil )
563
559
user := coderdtest .CreateFirstUser (t , client )
564
560
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
565
561
template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
562
+ version = coderdtest .UpdateTemplateVersion (t , client , user .OrganizationID , nil , template .ID )
563
+
564
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
565
+ defer cancel ()
566
+
567
+ err := client .CancelTemplateVersion (ctx , version .ID )
568
+ require .NoError (t , err )
569
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
570
+ err = client .UpdateActiveTemplateVersion (ctx , template .ID , codersdk.UpdateActiveTemplateVersion {
571
+ ID : version .ID ,
572
+ })
573
+ var apiErr * codersdk.Error
574
+ require .ErrorAs (t , err , & apiErr )
575
+ require .Equal (t , http .StatusForbidden , apiErr .StatusCode ())
576
+ require .Contains (t , apiErr .Detail , "canceled" )
577
+ })
578
+
579
+ t .Run ("PendingBuild" , func (t * testing.T ) {
580
+ t .Parallel ()
581
+ client := coderdtest .New (t , nil )
582
+ user := coderdtest .CreateFirstUser (t , client )
583
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
584
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
585
+ version = coderdtest .UpdateTemplateVersion (t , client , user .OrganizationID , nil , template .ID )
586
+
587
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
588
+ defer cancel ()
589
+
590
+ err := client .UpdateActiveTemplateVersion (ctx , template .ID , codersdk.UpdateActiveTemplateVersion {
591
+ ID : version .ID ,
592
+ })
593
+ var apiErr * codersdk.Error
594
+ require .ErrorAs (t , err , & apiErr )
595
+ require .Equal (t , http .StatusForbidden , apiErr .StatusCode ())
596
+ require .Contains (t , apiErr .Detail , "pending" )
597
+ })
598
+
599
+ t .Run ("DoesNotBelong" , func (t * testing.T ) {
600
+ t .Parallel ()
601
+ client := coderdtest .New (t , & coderdtest.Options {
602
+ IncludeProvisionerDaemon : true ,
603
+ })
604
+ user := coderdtest .CreateFirstUser (t , client )
605
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
606
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
566
607
version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
608
+ _ = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
609
+ _ = coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
567
610
568
611
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
569
612
defer cancel ()
@@ -576,13 +619,18 @@ func TestPatchActiveTemplateVersion(t *testing.T) {
576
619
require .Equal (t , http .StatusBadRequest , apiErr .StatusCode ())
577
620
})
578
621
579
- t .Run ("Found " , func (t * testing.T ) {
622
+ t .Run ("SuccessfulBuild " , func (t * testing.T ) {
580
623
t .Parallel ()
581
624
auditor := audit .NewMock ()
582
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true , Auditor : auditor })
625
+ client := coderdtest .New (t , & coderdtest.Options {
626
+ IncludeProvisionerDaemon : true ,
627
+ Auditor : auditor ,
628
+ })
583
629
user := coderdtest .CreateFirstUser (t , client )
584
630
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
585
631
template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
632
+ version = coderdtest .UpdateTemplateVersion (t , client , user .OrganizationID , nil , template .ID )
633
+ _ = coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
586
634
587
635
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
588
636
defer cancel ()
@@ -592,8 +640,8 @@ func TestPatchActiveTemplateVersion(t *testing.T) {
592
640
})
593
641
require .NoError (t , err )
594
642
595
- require .Len (t , auditor .AuditLogs (), 5 )
596
- assert .Equal (t , database .AuditActionWrite , auditor .AuditLogs ()[4 ].Action )
643
+ require .Len (t , auditor .AuditLogs (), 6 )
644
+ assert .Equal (t , database .AuditActionWrite , auditor .AuditLogs ()[5 ].Action )
597
645
})
598
646
}
599
647
0 commit comments