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