@@ -612,7 +612,7 @@ func TestGetWorkspaceAgentUsageStatsAndLabels(t *testing.T) {
612
612
})
613
613
}
614
614
615
- func TestGetWorkspaceAndAgents (t * testing.T ) {
615
+ func TestGetWorkspacesAndAgents (t * testing.T ) {
616
616
t .Parallel ()
617
617
if testing .Short () {
618
618
t .SkipNow ()
@@ -641,9 +641,12 @@ func TestGetWorkspaceAndAgents(t *testing.T) {
641
641
CreateAgent :true ,
642
642
})
643
643
succeeded := createTemplateVersion (t ,db ,tpl ,tvArgs {
644
- Status :database .ProvisionerJobStatusSucceeded ,
645
- CreateWorkspace :true ,
646
- CreateAgent :true ,
644
+ Status :database .ProvisionerJobStatusSucceeded ,
645
+ WorkspaceTransition :database .WorkspaceTransitionStart ,
646
+ CreateWorkspace :true ,
647
+ CreateAgent :true ,
648
+ ExtraAgents :1 ,
649
+ ExtraBuilds :2 ,
647
650
})
648
651
deleted := createTemplateVersion (t ,db ,tpl ,tvArgs {
649
652
Status :database .ProvisionerJobStatusSucceeded ,
@@ -666,8 +669,9 @@ func TestGetWorkspaceAndAgents(t *testing.T) {
666
669
require .Len (t ,row .AgentIds ,1 )
667
670
require .Equal (t ,database .ProvisionerJobStatusFailed ,row .JobStatus )
668
671
case succeeded .ID :
669
- require .Len (t ,row .AgentIds ,1 )
672
+ require .Len (t ,row .AgentIds ,2 )
670
673
require .Equal (t ,database .ProvisionerJobStatusSucceeded ,row .JobStatus )
674
+ require .Equal (t ,database .WorkspaceTransitionStart ,row .Transition )
671
675
case deleted .ID :
672
676
require .Len (t ,row .AgentIds ,0 )
673
677
require .Equal (t ,database .ProvisionerJobStatusSucceeded ,row .JobStatus )
@@ -1603,6 +1607,8 @@ type tvArgs struct {
1603
1607
CreateWorkspace bool
1604
1608
CreateAgent bool
1605
1609
WorkspaceTransition database.WorkspaceTransition
1610
+ ExtraAgents int
1611
+ ExtraBuilds int
1606
1612
}
1607
1613
1608
1614
// createTemplateVersion is a helper function to create a version with its dependencies.
@@ -1673,26 +1679,51 @@ func createTemplateVersion(t testing.TB, db database.Store, tpl database.Templat
1673
1679
trans = args .WorkspaceTransition
1674
1680
}
1675
1681
1676
- buildJob := dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {
1682
+ latestJob := dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {
1677
1683
Type :database .ProvisionerJobTypeWorkspaceBuild ,
1678
1684
CompletedAt :now ,
1679
1685
InitiatorID :tpl .CreatedBy ,
1680
1686
OrganizationID :tpl .OrganizationID ,
1681
1687
})
1682
- resource := dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {
1683
- JobID :buildJob .ID ,
1688
+ latestResource := dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {
1689
+ JobID :latestJob .ID ,
1684
1690
})
1685
1691
dbgen .WorkspaceBuild (t ,db , database.WorkspaceBuild {
1686
1692
WorkspaceID :wrk .ID ,
1687
1693
TemplateVersionID :version .ID ,
1688
1694
BuildNumber :1 ,
1689
1695
Transition :trans ,
1690
1696
InitiatorID :tpl .CreatedBy ,
1691
- JobID :buildJob .ID ,
1692
- })
1697
+ JobID :latestJob .ID ,
1698
+ })
1699
+ for i := 0 ;i < args .ExtraBuilds ;i ++ {
1700
+ latestJob = dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {
1701
+ Type :database .ProvisionerJobTypeWorkspaceBuild ,
1702
+ CompletedAt :now ,
1703
+ InitiatorID :tpl .CreatedBy ,
1704
+ OrganizationID :tpl .OrganizationID ,
1705
+ })
1706
+ latestResource = dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {
1707
+ JobID :latestJob .ID ,
1708
+ })
1709
+ dbgen .WorkspaceBuild (t ,db , database.WorkspaceBuild {
1710
+ WorkspaceID :wrk .ID ,
1711
+ TemplateVersionID :version .ID ,
1712
+ BuildNumber :int32 (i )+ 2 ,
1713
+ Transition :trans ,
1714
+ InitiatorID :tpl .CreatedBy ,
1715
+ JobID :latestJob .ID ,
1716
+ })
1717
+ }
1718
+
1693
1719
if args .CreateAgent {
1694
1720
dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {
1695
- ResourceID :resource .ID ,
1721
+ ResourceID :latestResource .ID ,
1722
+ })
1723
+ }
1724
+ for i := 0 ;i < args .ExtraAgents ;i ++ {
1725
+ dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {
1726
+ ResourceID :latestResource .ID ,
1696
1727
})
1697
1728
}
1698
1729
}