|
3 | 3 | /// <reference path="ArmTemplate.ts" /> |
4 | 4 | /// <reference path="Resource.ts" /> |
5 | 5 |
|
6 | | -describe('ArmTemplate', function(){ |
7 | | - it("Should handle resources without depencies", function() { |
| 6 | +describe('ArmTemplate', function () { |
| 7 | + it("Should handle resources without depencies", function () { |
8 | 8 | var at = new ArmViz.ArmTemplate({}); |
9 | 9 | var deps = at.getDependencies(new ArmViz.Resource()); |
10 | 10 |
|
11 | 11 | expect(deps).toEqual([]); |
12 | 12 | }); |
13 | 13 |
|
14 | 14 | it('should process concat expression', function () { |
15 | | - var ep = new ArmViz.ExpressionParser(); |
16 | | - var exp = ep.parse("[concat('Microsoft.Network/networkInterfaces/', parameters('nicNamePrefix'))]"); |
| 15 | + var ep = new ArmViz.ExpressionParser(); |
| 16 | + var exp = ep.parse("[concat('Microsoft.Network/networkInterfaces/', parameters('nicNamePrefix'))]"); |
17 | 17 |
|
18 | | - var at = new ArmViz.ArmTemplate({}); |
19 | | - var dependsOn = at.resolveDependsOnId(exp); |
20 | | - expect(dependsOn.type).toEqual("Microsoft.Network/networkInterfaces"); |
21 | | - expect(dependsOn.name).toEqual("nicNamePrefix") |
| 18 | + var at = new ArmViz.ArmTemplate({}); |
| 19 | + var dependsOn = at.resolveDependsOnId(exp); |
| 20 | + expect(dependsOn.type).toEqual("Microsoft.Network/networkInterfaces"); |
| 21 | + expect(dependsOn.name).toEqual("nicNamePrefix") |
22 | 22 | }); |
23 | 23 |
|
24 | 24 | it('should process nested parameters in concat', function () { |
25 | | - var ep = new ArmViz.ExpressionParser(); |
26 | | - var exp = ep.parse("resourceId('Microsoft.Web/sites', concat(parameters('endpointName'), 'gateway'))"); |
| 25 | + var ep = new ArmViz.ExpressionParser(); |
| 26 | + var exp = ep.parse("resourceId('Microsoft.Web/sites', concat(parameters('endpointName'), 'gateway'))"); |
| 27 | + |
| 28 | + var at = new ArmViz.ArmTemplate({}); |
| 29 | + var dependsOn = at.resolveDependsOnId(exp); |
| 30 | + expect(dependsOn.type).toEqual("Microsoft.Web/sites"); |
| 31 | + expect(dependsOn.name).toEqual("endpointNamegateway"); |
| 32 | + }); |
| 33 | + |
| 34 | + it('should resolve name with variables expression with properties', function () { |
| 35 | + var source = "[variables('nic').prefix.name]"; |
| 36 | + var templateData = { |
| 37 | + variables: { |
| 38 | + nic: { |
| 39 | + prefix: { |
| 40 | + name: 'nicName' |
| 41 | + } |
| 42 | + } |
| 43 | + } |
| 44 | + }; |
| 45 | + |
| 46 | + var at = new ArmViz.ArmTemplate(templateData); |
| 47 | + var name = at.resolveName(source); |
| 48 | + |
| 49 | + expect(name).toEqual('nicName'); |
| 50 | + }); |
| 51 | + |
| 52 | + it('should resolve dependencies with concat expression with properties', function () { |
| 53 | + var source = "[concat('Microsoft.Compute/virtualMachines/', variables('vm').name)]"; |
| 54 | + var templateData = { |
| 55 | + variables: { |
| 56 | + vm: { |
| 57 | + name: 'vmName' |
| 58 | + } |
| 59 | + } |
| 60 | + } |
| 61 | + |
| 62 | + var at = new ArmViz.ArmTemplate(templateData); |
| 63 | + var ep = new ArmViz.ExpressionParser(); |
| 64 | + var exp = ep.parse(source); |
| 65 | + var dependsOn = at.resolveDependsOnId(exp); |
| 66 | + |
| 67 | + expect(dependsOn.type).toEqual("Microsoft.Compute/virtualMachines"); |
| 68 | + expect(dependsOn.name).toEqual('vmName'); |
| 69 | + }); |
| 70 | + |
| 71 | + it('should multi-nested dependency in concat with properties', function () { |
| 72 | + var source = "resourceId('Microsoft.Web/sites', concat(variables('endpoint').name, 'Gateway'))"; |
| 73 | + var templateData = { |
| 74 | + parameters: { }, |
| 75 | + variables: { |
| 76 | + endpoint: { |
| 77 | + name: "[concat(parameters(endpointPrefix), concat('-', endpointName))]" |
| 78 | + } |
| 79 | + } |
| 80 | + }; |
| 81 | + |
| 82 | + var at = new ArmViz.ArmTemplate(templateData); |
| 83 | + var ep = new ArmViz.ExpressionParser(); |
| 84 | + var exp = ep.parse(source); |
| 85 | + var dependsOn = at.resolveDependsOnId(exp); |
27 | 86 |
|
28 | | - var at = new ArmViz.ArmTemplate({}); |
29 | | - var dependsOn = at.resolveDependsOnId(exp); |
30 | | - expect(dependsOn.type).toEqual("Microsoft.Web/sites"); |
31 | | - expect(dependsOn.name).toEqual("endpointNamegateway"); |
| 87 | + expect(dependsOn.type).toEqual("Microsoft.Web/sites"); |
| 88 | + expect(dependsOn.name).toEqual("endpointPrefix-endpointNameGateway"); |
32 | 89 | }); |
33 | 90 | }); |
0 commit comments