@@ -1432,6 +1432,9 @@ func TestCompleteJob(t *testing.T) {
14321432t .Run ("Modules" ,func (t * testing.T ) {
14331433t .Parallel ()
14341434
1435+ templateVersionID := uuid .New ()
1436+ workspaceBuildID := uuid .New ()
1437+
14351438cases := []struct {
14361439name string
14371440job * proto.CompletedJob
@@ -1525,7 +1528,7 @@ func TestCompleteJob(t *testing.T) {
15251528provisionerJobParams : database.InsertProvisionerJobParams {
15261529Type :database .ProvisionerJobTypeTemplateVersionImport ,
15271530Input :must (json .Marshal (provisionerdserver.TemplateVersionImportJob {
1528- TemplateVersionID :uuid . New () ,
1531+ TemplateVersionID :templateVersionID ,
15291532})),
15301533},
15311534expectedResources : []database.WorkspaceResource {{
@@ -1557,6 +1560,60 @@ func TestCompleteJob(t *testing.T) {
15571560Transition :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
15621619for _ ,c := range cases {
@@ -1577,13 +1634,23 @@ func TestCompleteJob(t *testing.T) {
15771634jobParams .StorageMethod = database .ProvisionerStorageMethodFile
15781635}
15791636job ,err := db .InsertProvisionerJob (ctx ,jobParams )
1637+
15801638tpl := dbgen .Template (t ,db , database.Template {
15811639OrganizationID :pd .OrganizationID ,
15821640})
1583- _ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
1641+ tv : =dbgen .TemplateVersion (t ,db , database.TemplateVersion {
15841642TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
15851643JobID :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
15881655require .NoError (t ,err )
15891656_ ,err = db .AcquireProvisionerJob (ctx , database.AcquireProvisionerJobParams {