@@ -2,7 +2,7 @@ import { expect, haveResource } from '@aws-cdk/assert';
2
2
import iam = require( '@aws-cdk/aws-iam' ) ;
3
3
import kms = require( '@aws-cdk/aws-kms' ) ;
4
4
import cdk = require( '@aws-cdk/core' ) ;
5
- import { App , Stack } from '@aws-cdk/core' ;
5
+ import { App , CfnParameter , Stack } from '@aws-cdk/core' ;
6
6
import { Test } from 'nodeunit' ;
7
7
import ssm = require( '../lib' ) ;
8
8
@@ -123,7 +123,7 @@ export = {
123
123
{ Ref : 'AWS::Region' } ,
124
124
':' ,
125
125
{ Ref : 'AWS::AccountId' } ,
126
- ':parameter' ,
126
+ ':parameter/ ' ,
127
127
{ Ref : 'Parameter9E1B4FBA' }
128
128
] ]
129
129
} ) ;
@@ -146,7 +146,7 @@ export = {
146
146
{ Ref : 'AWS::Region' } ,
147
147
':' ,
148
148
{ Ref : 'AWS::AccountId' } ,
149
- ':parameterMyParamName ' ] ]
149
+ ':parameter/MyParamName ' ] ]
150
150
} ) ;
151
151
test . deepEqual ( stack . resolve ( param . parameterName ) , 'MyParamName' ) ;
152
152
test . deepEqual ( stack . resolve ( param . parameterType ) , 'String' ) ;
@@ -181,7 +181,7 @@ export = {
181
181
{ Ref : 'AWS::Region' } ,
182
182
':' ,
183
183
{ Ref : 'AWS::AccountId' } ,
184
- ':parameterMyParamName ' ] ]
184
+ ':parameter/MyParamName ' ] ]
185
185
} ) ;
186
186
test . deepEqual ( stack . resolve ( param . parameterName ) , 'MyParamName' ) ;
187
187
test . deepEqual ( stack . resolve ( param . parameterType ) , 'String' ) ;
@@ -208,7 +208,7 @@ export = {
208
208
{ Ref : 'AWS::Region' } ,
209
209
':' ,
210
210
{ Ref : 'AWS::AccountId' } ,
211
- ':parameterMyParamName ' ] ]
211
+ ':parameter/MyParamName ' ] ]
212
212
} ) ;
213
213
test . deepEqual ( stack . resolve ( param . parameterName ) , 'MyParamName' ) ;
214
214
test . deepEqual ( stack . resolve ( param . parameterType ) , 'SecureString' ) ;
@@ -265,7 +265,7 @@ export = {
265
265
{
266
266
Ref : 'AWS::AccountId'
267
267
} ,
268
- ':parameterMyParamName '
268
+ ':parameter/MyParamName '
269
269
]
270
270
]
271
271
}
@@ -326,7 +326,7 @@ export = {
326
326
{
327
327
Ref : 'AWS::AccountId'
328
328
} ,
329
- ':parameterMyParamName '
329
+ ':parameter/MyParamName '
330
330
]
331
331
]
332
332
}
@@ -355,7 +355,7 @@ export = {
355
355
{ Ref : 'AWS::Region' } ,
356
356
':' ,
357
357
{ Ref : 'AWS::AccountId' } ,
358
- ':parameterMyParamName ' ] ]
358
+ ':parameter/MyParamName ' ] ]
359
359
} ) ;
360
360
test . deepEqual ( stack . resolve ( param . parameterName ) , 'MyParamName' ) ;
361
361
test . deepEqual ( stack . resolve ( param . parameterType ) , 'StringList' ) ;
@@ -445,5 +445,43 @@ export = {
445
445
446
446
test . done ( ) ;
447
447
} ,
448
+ } ,
449
+
450
+ 'rendering of parameter arns' ( test : Test ) {
451
+ const stack = new Stack ( ) ;
452
+ const param = new CfnParameter ( stack , 'param' ) ;
453
+ const expectedA = { 'Fn::Join' : [ '' , [ 'arn:' , { Ref : 'AWS::Partition' } , ':ssm:' , { Ref : 'AWS::Region' } , ':' , { Ref : 'AWS::AccountId' } , ':parameter/bam' ] ] } ;
454
+ const expectedB = { 'Fn::Join' : [ '' , [ 'arn:' , { Ref : 'AWS::Partition' } , ':ssm:' , { Ref : 'AWS::Region' } , ':' , { Ref : 'AWS::AccountId' } , ':parameter/' , { Ref : 'param' } ] ] } ;
455
+ let i = 0 ;
456
+
457
+ // WHEN
458
+ const case1 = ssm . StringParameter . fromStringParameterName ( stack , `p${ i ++ } ` , 'bam' ) ;
459
+ const case2 = ssm . StringParameter . fromStringParameterName ( stack , `p${ i ++ } ` , '/bam' ) ;
460
+ const case3 = ssm . StringParameter . fromStringParameterName ( stack , `p${ i ++ } ` , param . valueAsString ) ;
461
+ const case4 = ssm . StringParameter . fromStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : 'bam' } ) ;
462
+ const case5 = ssm . StringParameter . fromStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : '/bam' } ) ;
463
+ const case6 = ssm . StringParameter . fromStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : param . valueAsString } ) ;
464
+ const case7 = ssm . StringParameter . fromSecureStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : 'bam' , version : 10 } ) ;
465
+ const case8 = ssm . StringParameter . fromSecureStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : '/bam' , version : 10 } ) ;
466
+ const case9 = ssm . StringParameter . fromSecureStringParameterAttributes ( stack , `p${ i ++ } ` , { parameterName : param . valueAsString , version : 10 } ) ;
467
+ const case10 = new ssm . StringParameter ( stack , `p${ i ++ } ` , { stringValue : 'value' } ) ;
468
+
469
+ // THEN
470
+ test . deepEqual ( stack . resolve ( case1 . parameterArn ) , expectedA ) ;
471
+ test . deepEqual ( stack . resolve ( case2 . parameterArn ) , expectedA ) ;
472
+ test . deepEqual ( stack . resolve ( case3 . parameterArn ) , expectedB ) ;
473
+ test . deepEqual ( stack . resolve ( case4 . parameterArn ) , expectedA ) ;
474
+ test . deepEqual ( stack . resolve ( case5 . parameterArn ) , expectedA ) ;
475
+ test . deepEqual ( stack . resolve ( case6 . parameterArn ) , expectedB ) ;
476
+ test . deepEqual ( stack . resolve ( case7 . parameterArn ) , expectedA ) ;
477
+ test . deepEqual ( stack . resolve ( case8 . parameterArn ) , expectedA ) ;
478
+ test . deepEqual ( stack . resolve ( case9 . parameterArn ) , expectedB ) ;
479
+ test . deepEqual ( stack . resolve ( case10 . parameterArn ) , {
480
+ 'Fn::Join' : [ '' , [
481
+ 'arn:' , { Ref : 'AWS::Partition' } , ':ssm:' , { Ref : 'AWS::Region' } , ':' , { Ref : 'AWS::AccountId' } , ':parameter/' , { Ref : 'p97A508212' }
482
+ ]
483
+ ] } ) ;
484
+
485
+ test . done ( ) ;
448
486
}
449
487
} ;
0 commit comments