@@ -1433,28 +1433,13 @@ func TestCompleteJob(t *testing.T) {
1433
1433
1434
1434
t .Run ("Modules" , func (t * testing.T ) {
1435
1435
t .Parallel ()
1436
- srv , db , _ , pd := setup (t , false , & overrides {})
1437
- job , err := db .InsertProvisionerJob (ctx , database.InsertProvisionerJobParams {
1438
- ID : uuid .New (),
1439
- Provisioner : database .ProvisionerTypeEcho ,
1440
- Type : database .ProvisionerJobTypeTemplateVersionDryRun ,
1441
- StorageMethod : database .ProvisionerStorageMethodFile ,
1442
- })
1443
- require .NoError (t , err )
1444
- _ , err = db .AcquireProvisionerJob (ctx , database.AcquireProvisionerJobParams {
1445
- WorkerID : uuid.NullUUID {
1446
- UUID : pd .ID ,
1447
- Valid : true ,
1448
- },
1449
- Types : []database.ProvisionerType {database .ProvisionerTypeEcho },
1450
- })
1451
- require .NoError (t , err )
1452
1436
1453
1437
cases := []struct {
1454
- name string
1455
- job * proto.CompletedJob
1456
- expectedResources []database.WorkspaceResource
1457
- expectedModules []database.WorkspaceModule
1438
+ name string
1439
+ job * proto.CompletedJob
1440
+ expectedResources []database.WorkspaceResource
1441
+ expectedModules []database.WorkspaceModule
1442
+ provisionerJobParams database.InsertProvisionerJobParams
1458
1443
}{
1459
1444
{
1460
1445
name : "TemplateDryRun" ,
@@ -1487,18 +1472,91 @@ func TestCompleteJob(t *testing.T) {
1487
1472
String : "module.test1" ,
1488
1473
Valid : true ,
1489
1474
},
1475
+ Transition : database .WorkspaceTransitionStart ,
1490
1476
}, {
1491
1477
Name : "something2" ,
1492
1478
Type : "aws_instance" ,
1493
1479
ModulePath : sql.NullString {
1494
1480
String : "" ,
1495
1481
Valid : true ,
1496
1482
},
1483
+ Transition : database .WorkspaceTransitionStart ,
1484
+ }},
1485
+ expectedModules : []database.WorkspaceModule {{
1486
+ Key : "test1" ,
1487
+ Version : "1.0.0" ,
1488
+ Source : "github.com/example/example" ,
1489
+ Transition : database .WorkspaceTransitionStart ,
1490
+ }},
1491
+ provisionerJobParams : database.InsertProvisionerJobParams {
1492
+ Type : database .ProvisionerJobTypeTemplateVersionDryRun ,
1493
+ },
1494
+ },
1495
+ {
1496
+ name : "TemplateImport" ,
1497
+ job : & proto.CompletedJob {
1498
+ Type : & proto.CompletedJob_TemplateImport_ {
1499
+ TemplateImport : & proto.CompletedJob_TemplateImport {
1500
+ StartResources : []* sdkproto.Resource {{
1501
+ Name : "something" ,
1502
+ Type : "aws_instance" ,
1503
+ ModulePath : "module.test1" ,
1504
+ }},
1505
+ StartModules : []* sdkproto.Module {
1506
+ {
1507
+ Key : "test1" ,
1508
+ Version : "1.0.0" ,
1509
+ Source : "github.com/example/example" ,
1510
+ },
1511
+ },
1512
+ StopResources : []* sdkproto.Resource {{
1513
+ Name : "something2" ,
1514
+ Type : "aws_instance" ,
1515
+ ModulePath : "module.test2" ,
1516
+ }},
1517
+ StopModules : []* sdkproto.Module {
1518
+ {
1519
+ Key : "test2" ,
1520
+ Version : "2.0.0" ,
1521
+ Source : "github.com/example2/example" ,
1522
+ },
1523
+ },
1524
+ },
1525
+ },
1526
+ },
1527
+ provisionerJobParams : database.InsertProvisionerJobParams {
1528
+ Type : database .ProvisionerJobTypeTemplateVersionImport ,
1529
+ Input : must (json .Marshal (provisionerdserver.TemplateVersionImportJob {
1530
+ TemplateVersionID : uuid .New (),
1531
+ })),
1532
+ },
1533
+ expectedResources : []database.WorkspaceResource {{
1534
+ Name : "something" ,
1535
+ Type : "aws_instance" ,
1536
+ ModulePath : sql.NullString {
1537
+ String : "module.test1" ,
1538
+ Valid : true ,
1539
+ },
1540
+ Transition : database .WorkspaceTransitionStart ,
1541
+ }, {
1542
+ Name : "something2" ,
1543
+ Type : "aws_instance" ,
1544
+ ModulePath : sql.NullString {
1545
+ String : "module.test2" ,
1546
+ Valid : true ,
1547
+ },
1548
+ Transition : database .WorkspaceTransitionStop ,
1497
1549
}},
1498
1550
expectedModules : []database.WorkspaceModule {{
1499
- Key : "test1" ,
1500
- Version : "1.0.0" ,
1501
- Source : "github.com/example/example" ,
1551
+ Key : "test1" ,
1552
+ Version : "1.0.0" ,
1553
+ Source : "github.com/example/example" ,
1554
+ Transition : database .WorkspaceTransitionStart ,
1555
+ }, {
1556
+ Key : "test2" ,
1557
+ Version : "2.0.0" ,
1558
+ Source : "github.com/example2/example" ,
1559
+ Transition : database .WorkspaceTransitionStop ,
1502
1560
}},
1503
1561
},
1504
1562
}
@@ -1509,6 +1567,36 @@ func TestCompleteJob(t *testing.T) {
1509
1567
t .Run (c .name , func (t * testing.T ) {
1510
1568
t .Parallel ()
1511
1569
1570
+ srv , db , _ , pd := setup (t , false , & overrides {})
1571
+ jobParams := c .provisionerJobParams
1572
+ if jobParams .ID == uuid .Nil {
1573
+ jobParams .ID = uuid .New ()
1574
+ }
1575
+ if jobParams .Provisioner == "" {
1576
+ jobParams .Provisioner = database .ProvisionerTypeEcho
1577
+ }
1578
+ if jobParams .StorageMethod == "" {
1579
+ jobParams .StorageMethod = database .ProvisionerStorageMethodFile
1580
+ }
1581
+ job , err := db .InsertProvisionerJob (ctx , jobParams )
1582
+ tpl := dbgen .Template (t , db , database.Template {
1583
+ OrganizationID : pd .OrganizationID ,
1584
+ })
1585
+ _ = dbgen .TemplateVersion (t , db , database.TemplateVersion {
1586
+ TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true },
1587
+ JobID : job .ID ,
1588
+ })
1589
+
1590
+ require .NoError (t , err )
1591
+ _ , err = db .AcquireProvisionerJob (ctx , database.AcquireProvisionerJobParams {
1592
+ WorkerID : uuid.NullUUID {
1593
+ UUID : pd .ID ,
1594
+ Valid : true ,
1595
+ },
1596
+ Types : []database.ProvisionerType {jobParams .Provisioner },
1597
+ })
1598
+ require .NoError (t , err )
1599
+
1512
1600
completedJob := c .job
1513
1601
completedJob .JobId = job .ID .String ()
1514
1602
@@ -1521,7 +1609,10 @@ func TestCompleteJob(t *testing.T) {
1521
1609
1522
1610
for _ , expectedResource := range c .expectedResources {
1523
1611
for i , resource := range resources {
1524
- if resource .Name == expectedResource .Name && resource .Type == expectedResource .Type && resource .ModulePath == expectedResource .ModulePath {
1612
+ if resource .Name == expectedResource .Name &&
1613
+ resource .Type == expectedResource .Type &&
1614
+ resource .ModulePath == expectedResource .ModulePath &&
1615
+ resource .Transition == expectedResource .Transition {
1525
1616
resources [i ] = database.WorkspaceResource {Name : "matched" }
1526
1617
}
1527
1618
}
@@ -1537,7 +1628,10 @@ func TestCompleteJob(t *testing.T) {
1537
1628
1538
1629
for _ , expectedModule := range c .expectedModules {
1539
1630
for i , module := range modules {
1540
- if module .Key == expectedModule .Key && module .Version == expectedModule .Version && module .Source == expectedModule .Source {
1631
+ if module .Key == expectedModule .Key &&
1632
+ module .Version == expectedModule .Version &&
1633
+ module .Source == expectedModule .Source &&
1634
+ module .Transition == expectedModule .Transition {
1541
1635
modules [i ] = database.WorkspaceModule {Key : "matched" }
1542
1636
}
1543
1637
}
0 commit comments