Skip to content

Commit a9f2bad

Browse files
committed
test against multiple agents & multiple builds
1 parent 1638825 commit a9f2bad

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

coderd/database/querier_test.go

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ func TestGetWorkspaceAgentUsageStatsAndLabels(t *testing.T) {
612612
})
613613
}
614614

615-
func TestGetWorkspaceAndAgents(t *testing.T) {
615+
func TestGetWorkspacesAndAgents(t *testing.T) {
616616
t.Parallel()
617617
if testing.Short() {
618618
t.SkipNow()
@@ -641,9 +641,12 @@ func TestGetWorkspaceAndAgents(t *testing.T) {
641641
CreateAgent: true,
642642
})
643643
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,
647650
})
648651
deleted := createTemplateVersion(t, db, tpl, tvArgs{
649652
Status: database.ProvisionerJobStatusSucceeded,
@@ -666,8 +669,9 @@ func TestGetWorkspaceAndAgents(t *testing.T) {
666669
require.Len(t, row.AgentIds, 1)
667670
require.Equal(t, database.ProvisionerJobStatusFailed, row.JobStatus)
668671
case succeeded.ID:
669-
require.Len(t, row.AgentIds, 1)
672+
require.Len(t, row.AgentIds, 2)
670673
require.Equal(t, database.ProvisionerJobStatusSucceeded, row.JobStatus)
674+
require.Equal(t, database.WorkspaceTransitionStart, row.Transition)
671675
case deleted.ID:
672676
require.Len(t, row.AgentIds, 0)
673677
require.Equal(t, database.ProvisionerJobStatusSucceeded, row.JobStatus)
@@ -1603,6 +1607,8 @@ type tvArgs struct {
16031607
CreateWorkspace bool
16041608
CreateAgent bool
16051609
WorkspaceTransition database.WorkspaceTransition
1610+
ExtraAgents int
1611+
ExtraBuilds int
16061612
}
16071613

16081614
// 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
16731679
trans = args.WorkspaceTransition
16741680
}
16751681

1676-
buildJob := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
1682+
latestJob := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
16771683
Type: database.ProvisionerJobTypeWorkspaceBuild,
16781684
CompletedAt: now,
16791685
InitiatorID: tpl.CreatedBy,
16801686
OrganizationID: tpl.OrganizationID,
16811687
})
1682-
resource := dbgen.WorkspaceResource(t, db, database.WorkspaceResource{
1683-
JobID: buildJob.ID,
1688+
latestResource := dbgen.WorkspaceResource(t, db, database.WorkspaceResource{
1689+
JobID: latestJob.ID,
16841690
})
16851691
dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
16861692
WorkspaceID: wrk.ID,
16871693
TemplateVersionID: version.ID,
16881694
BuildNumber: 1,
16891695
Transition: trans,
16901696
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+
16931719
if args.CreateAgent {
16941720
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,
16961727
})
16971728
}
16981729
}

0 commit comments

Comments
 (0)