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