Skip to content

Commit 2128047

Browse files
committed
TestCompleteJob Modules WorkspaceBuild
1 parent 64074ff commit 2128047

File tree

1 file changed

+69
-2
lines changed

1 file changed

+69
-2
lines changed

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,9 @@ func TestCompleteJob(t *testing.T) {
14341434
t.Run("Modules", func(t *testing.T) {
14351435
t.Parallel()
14361436

1437+
templateVersionID := uuid.New()
1438+
workspaceBuildID := uuid.New()
1439+
14371440
cases := []struct {
14381441
name string
14391442
job *proto.CompletedJob
@@ -1527,7 +1530,7 @@ func TestCompleteJob(t *testing.T) {
15271530
provisionerJobParams: database.InsertProvisionerJobParams{
15281531
Type: database.ProvisionerJobTypeTemplateVersionImport,
15291532
Input: must(json.Marshal(provisionerdserver.TemplateVersionImportJob{
1530-
TemplateVersionID: uuid.New(),
1533+
TemplateVersionID: templateVersionID,
15311534
})),
15321535
},
15331536
expectedResources: []database.WorkspaceResource{{
@@ -1559,6 +1562,60 @@ func TestCompleteJob(t *testing.T) {
15591562
Transition: database.WorkspaceTransitionStop,
15601563
}},
15611564
},
1565+
{
1566+
name: "WorkspaceBuild",
1567+
job: &proto.CompletedJob{
1568+
Type: &proto.CompletedJob_WorkspaceBuild_{
1569+
WorkspaceBuild: &proto.CompletedJob_WorkspaceBuild{
1570+
Resources: []*sdkproto.Resource{{
1571+
Name: "something",
1572+
Type: "aws_instance",
1573+
ModulePath: "module.test1",
1574+
}, {
1575+
Name: "something2",
1576+
Type: "aws_instance",
1577+
ModulePath: "",
1578+
}},
1579+
Modules: []*sdkproto.Module{
1580+
{
1581+
Key: "test1",
1582+
Version: "1.0.0",
1583+
Source: "github.com/example/example",
1584+
},
1585+
},
1586+
},
1587+
},
1588+
},
1589+
expectedResources: []database.WorkspaceResource{{
1590+
Name: "something",
1591+
Type: "aws_instance",
1592+
ModulePath: sql.NullString{
1593+
String: "module.test1",
1594+
Valid: true,
1595+
},
1596+
Transition: database.WorkspaceTransitionStart,
1597+
}, {
1598+
Name: "something2",
1599+
Type: "aws_instance",
1600+
ModulePath: sql.NullString{
1601+
String: "",
1602+
Valid: true,
1603+
},
1604+
Transition: database.WorkspaceTransitionStart,
1605+
}},
1606+
expectedModules: []database.WorkspaceModule{{
1607+
Key: "test1",
1608+
Version: "1.0.0",
1609+
Source: "github.com/example/example",
1610+
Transition: database.WorkspaceTransitionStart,
1611+
}},
1612+
provisionerJobParams: database.InsertProvisionerJobParams{
1613+
Type: database.ProvisionerJobTypeWorkspaceBuild,
1614+
Input: must(json.Marshal(provisionerdserver.WorkspaceProvisionJob{
1615+
WorkspaceBuildID: workspaceBuildID,
1616+
})),
1617+
},
1618+
},
15621619
}
15631620

15641621
for _, c := range cases {
@@ -1579,13 +1636,23 @@ func TestCompleteJob(t *testing.T) {
15791636
jobParams.StorageMethod = database.ProvisionerStorageMethodFile
15801637
}
15811638
job, err := db.InsertProvisionerJob(ctx, jobParams)
1639+
15821640
tpl := dbgen.Template(t, db, database.Template{
15831641
OrganizationID: pd.OrganizationID,
15841642
})
1585-
_ = dbgen.TemplateVersion(t, db, database.TemplateVersion{
1643+
tv := dbgen.TemplateVersion(t, db, database.TemplateVersion{
15861644
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
15871645
JobID: job.ID,
15881646
})
1647+
workspace := dbgen.Workspace(t, db, database.WorkspaceTable{
1648+
TemplateID: tpl.ID,
1649+
})
1650+
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
1651+
ID: workspaceBuildID,
1652+
JobID: job.ID,
1653+
WorkspaceID: workspace.ID,
1654+
TemplateVersionID: tv.ID,
1655+
})
15891656

15901657
require.NoError(t, err)
15911658
_, err = db.AcquireProvisionerJob(ctx, database.AcquireProvisionerJobParams{

0 commit comments

Comments
 (0)