@@ -1434,6 +1434,9 @@ func TestCompleteJob(t *testing.T) {
1434
1434
t .Run ("Modules" ,func (t * testing.T ) {
1435
1435
t .Parallel ()
1436
1436
1437
+ templateVersionID := uuid .New ()
1438
+ workspaceBuildID := uuid .New ()
1439
+
1437
1440
cases := []struct {
1438
1441
name string
1439
1442
job * proto.CompletedJob
@@ -1527,7 +1530,7 @@ func TestCompleteJob(t *testing.T) {
1527
1530
provisionerJobParams : database.InsertProvisionerJobParams {
1528
1531
Type :database .ProvisionerJobTypeTemplateVersionImport ,
1529
1532
Input :must (json .Marshal (provisionerdserver.TemplateVersionImportJob {
1530
- TemplateVersionID :uuid . New () ,
1533
+ TemplateVersionID :templateVersionID ,
1531
1534
})),
1532
1535
},
1533
1536
expectedResources : []database.WorkspaceResource {{
@@ -1559,6 +1562,60 @@ func TestCompleteJob(t *testing.T) {
1559
1562
Transition :database .WorkspaceTransitionStop ,
1560
1563
}},
1561
1564
},
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
+ },
1562
1619
}
1563
1620
1564
1621
for _ ,c := range cases {
@@ -1579,13 +1636,23 @@ func TestCompleteJob(t *testing.T) {
1579
1636
jobParams .StorageMethod = database .ProvisionerStorageMethodFile
1580
1637
}
1581
1638
job ,err := db .InsertProvisionerJob (ctx ,jobParams )
1639
+
1582
1640
tpl := dbgen .Template (t ,db , database.Template {
1583
1641
OrganizationID :pd .OrganizationID ,
1584
1642
})
1585
- _ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
1643
+ tv : =dbgen .TemplateVersion (t ,db , database.TemplateVersion {
1586
1644
TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
1587
1645
JobID :job .ID ,
1588
1646
})
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
+ })
1589
1656
1590
1657
require .NoError (t ,err )
1591
1658
_ ,err = db .AcquireProvisionerJob (ctx , database.AcquireProvisionerJobParams {