@@ -53,15 +53,28 @@ describe('servicePrincipal', () => {
53
53
expect ( Default . servicePrincipal ( 'codedeploy' , cnRegion , 'amazonaws.com.cn' ) ) . toBe ( `codedeploy.${ cnRegion } .amazonaws.com.cn` ) ;
54
54
} ) ;
55
55
}
56
-
57
56
} ) ;
58
57
59
58
60
59
describe ( 'spot-check some service principals' , ( ) => {
61
60
test ( 'ssm' , ( ) => {
62
- expect ( Default . servicePrincipal ( 'ssm.amazonaws.com' , 'us-east-1' , 'x' ) ) . toBe ( 'ssm.amazonaws.com' ) ;
63
- expect ( Default . servicePrincipal ( 'ssm.amazonaws.com' , 'eu-north-1' , 'x' ) ) . toBe ( 'ssm.amazonaws.com' ) ;
64
- expect ( Default . servicePrincipal ( 'ssm.amazonaws.com' , 'ap-east-1' , 'x' ) ) . toBe ( 'ssm.ap-east-1.amazonaws.com' ) ;
65
- expect ( Default . servicePrincipal ( 'ssm.amazonaws.com' , 'eu-south-1' , 'x' ) ) . toBe ( 'ssm.eu-south-1.amazonaws.com' ) ;
61
+ expectServicePrincipals ( 'ssm.amazonaws.com' , {
62
+ 'us-east-1' : 'ssm.amazonaws.com' ,
63
+ 'eu-north-1' : 'ssm.amazonaws.com' ,
64
+ 'ap-east-1' : 'ssm.ap-east-1.amazonaws.com' ,
65
+ 'eu-south-1' : 'ssm.eu-south-1.amazonaws.com' ,
66
+ } ) ;
66
67
} ) ;
68
+
69
+ test ( 'EMR' , ( ) => {
70
+ expectServicePrincipals ( 'elasticmapreduce.amazonaws.com' , {
71
+ 'us-east-1' : 'elasticmapreduce.amazonaws.com' ,
72
+ 'cn-north-1' : 'elasticmapreduce.EXTENSION' , // amazonaws.com.cn in China
73
+ 'us-iso-east-1' : 'elasticmapreduce.amazonaws.com' ,
74
+ } ) ;
75
+ } ) ;
76
+
77
+ function expectServicePrincipals ( principal : string , regionMap : Record < string , string > ) {
78
+ expect ( Object . fromEntries ( Object . keys ( regionMap ) . map ( reg => [ reg , Default . servicePrincipal ( principal , reg , 'EXTENSION' ) ] ) ) ) . toEqual ( regionMap ) ;
79
+ }
67
80
} ) ;
0 commit comments