Skip to content

Commit b178718

Browse files
committed
TestCompleteJob Modules WorkspaceBuild
1 parent 9b025f5 commit b178718

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
@@ -1432,6 +1432,9 @@ func TestCompleteJob(t *testing.T) {
14321432
t.Run("Modules", func(t *testing.T) {
14331433
t.Parallel()
14341434

1435+
templateVersionID := uuid.New()
1436+
workspaceBuildID := uuid.New()
1437+
14351438
cases := []struct {
14361439
name string
14371440
job *proto.CompletedJob
@@ -1525,7 +1528,7 @@ func TestCompleteJob(t *testing.T) {
15251528
provisionerJobParams: database.InsertProvisionerJobParams{
15261529
Type: database.ProvisionerJobTypeTemplateVersionImport,
15271530
Input: must(json.Marshal(provisionerdserver.TemplateVersionImportJob{
1528-
TemplateVersionID: uuid.New(),
1531+
TemplateVersionID: templateVersionID,
15291532
})),
15301533
},
15311534
expectedResources: []database.WorkspaceResource{{
@@ -1557,6 +1560,60 @@ func TestCompleteJob(t *testing.T) {
15571560
Transition: database.WorkspaceTransitionStop,
15581561
}},
15591562
},
1563+
{
1564+
name: "WorkspaceBuild",
1565+
job: &proto.CompletedJob{
1566+
Type: &proto.CompletedJob_WorkspaceBuild_{
1567+
WorkspaceBuild: &proto.CompletedJob_WorkspaceBuild{
1568+
Resources: []*sdkproto.Resource{{
1569+
Name: "something",
1570+
Type: "aws_instance",
1571+
ModulePath: "module.test1",
1572+
}, {
1573+
Name: "something2",
1574+
Type: "aws_instance",
1575+
ModulePath: "",
1576+
}},
1577+
Modules: []*sdkproto.Module{
1578+
{
1579+
Key: "test1",
1580+
Version: "1.0.0",
1581+
Source: "github.com/example/example",
1582+
},
1583+
},
1584+
},
1585+
},
1586+
},
1587+
expectedResources: []database.WorkspaceResource{{
1588+
Name: "something",
1589+
Type: "aws_instance",
1590+
ModulePath: sql.NullString{
1591+
String: "module.test1",
1592+
Valid: true,
1593+
},
1594+
Transition: database.WorkspaceTransitionStart,
1595+
}, {
1596+
Name: "something2",
1597+
Type: "aws_instance",
1598+
ModulePath: sql.NullString{
1599+
String: "",
1600+
Valid: true,
1601+
},
1602+
Transition: database.WorkspaceTransitionStart,
1603+
}},
1604+
expectedModules: []database.WorkspaceModule{{
1605+
Key: "test1",
1606+
Version: "1.0.0",
1607+
Source: "github.com/example/example",
1608+
Transition: database.WorkspaceTransitionStart,
1609+
}},
1610+
provisionerJobParams: database.InsertProvisionerJobParams{
1611+
Type: database.ProvisionerJobTypeWorkspaceBuild,
1612+
Input: must(json.Marshal(provisionerdserver.WorkspaceProvisionJob{
1613+
WorkspaceBuildID: workspaceBuildID,
1614+
})),
1615+
},
1616+
},
15601617
}
15611618

15621619
for _, c := range cases {
@@ -1577,13 +1634,23 @@ func TestCompleteJob(t *testing.T) {
15771634
jobParams.StorageMethod = database.ProvisionerStorageMethodFile
15781635
}
15791636
job, err := db.InsertProvisionerJob(ctx, jobParams)
1637+
15801638
tpl := dbgen.Template(t, db, database.Template{
15811639
OrganizationID: pd.OrganizationID,
15821640
})
1583-
_ = dbgen.TemplateVersion(t, db, database.TemplateVersion{
1641+
tv := dbgen.TemplateVersion(t, db, database.TemplateVersion{
15841642
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
15851643
JobID: job.ID,
15861644
})
1645+
workspace := dbgen.Workspace(t, db, database.WorkspaceTable{
1646+
TemplateID: tpl.ID,
1647+
})
1648+
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
1649+
ID: workspaceBuildID,
1650+
JobID: job.ID,
1651+
WorkspaceID: workspace.ID,
1652+
TemplateVersionID: tv.ID,
1653+
})
15871654

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

0 commit comments

Comments
 (0)