@@ -774,11 +774,25 @@ describe('AwsMetricAttributeGeneratorTest', () => {
774774 validateRemoteResourceAttributes ( 'AWS::Kinesis::Stream' , 'AWS_KINESIS_STREAM_NAME' ) ;
775775 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_KINESIS_STREAM_NAME , undefined ) ;
776776
777+ // Validate behaviour of AWS_KINESIS_STREAM_NAME attribute with special chars, then remove it.
778+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_KINESIS_STREAM_NAME , 'kinesis-stream|with^chars' ) ;
779+ validateRemoteResourceAttributes ( 'AWS::Kinesis::Stream' , 'kinesis-stream^|with^^chars' ) ;
780+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_KINESIS_STREAM_NAME , undefined ) ;
781+
777782 // Validate behaviour of AWS_SNS_TOPIC_ARN attribute then remove it.
778783 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SNS_TOPIC_ARN , 'arn:aws:sns:us-east-1:123456789012:testTopic' ) ;
779784 validateRemoteResourceAttributes ( 'AWS::SNS::Topic' , 'testTopic' , 'arn:aws:sns:us-east-1:123456789012:testTopic' ) ;
780785 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SNS_TOPIC_ARN , undefined ) ;
781786
787+ // Validate behaviour of AWS_SNS_TOPIC_ARN attribute with special chars, then remove it.
788+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SNS_TOPIC_ARN , 'arn:aws:sns:us-east-1:123456789012:test|Topic^name' ) ;
789+ validateRemoteResourceAttributes (
790+ 'AWS::SNS::Topic' ,
791+ 'test^|Topic^^name' ,
792+ 'arn:aws:sns:us-east-1:123456789012:test^|Topic^^name'
793+ ) ;
794+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SNS_TOPIC_ARN , undefined ) ;
795+
782796 // Validate behaviour of AWS_SECRETSMANAGER_SECRET_ARN attributes then remove it.
783797 mockAttribute (
784798 AWS_ATTRIBUTE_KEYS . AWS_SECRETSMANAGER_SECRET_ARN ,
@@ -791,6 +805,18 @@ describe('AwsMetricAttributeGeneratorTest', () => {
791805 ) ;
792806 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SECRETSMANAGER_SECRET_ARN , undefined ) ;
793807
808+ // Validate behaviour of AWS_SECRETSMANAGER_SECRET_ARN attribute with special chars, then remove it.
809+ mockAttribute (
810+ AWS_ATTRIBUTE_KEYS . AWS_SECRETSMANAGER_SECRET_ARN ,
811+ 'arn:aws:secretsmanager:us-east-1:123456789123:secret:test|Secret^name'
812+ ) ;
813+ validateRemoteResourceAttributes (
814+ 'AWS::SecretsManager::Secret' ,
815+ 'test^|Secret^^name' ,
816+ 'arn:aws:secretsmanager:us-east-1:123456789123:secret:test^|Secret^^name'
817+ ) ;
818+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_SECRETSMANAGER_SECRET_ARN , undefined ) ;
819+
794820 // Validate behaviour of AWS_LAMBDA_FUNCTION_NAME and AWS_LAMBDA_FUNCTION_ARN
795821 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_NAME , 'aws_lambda_function_name' ) ;
796822 mockAttribute (
@@ -805,11 +831,30 @@ describe('AwsMetricAttributeGeneratorTest', () => {
805831 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_NAME , undefined ) ;
806832 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_ARN , undefined ) ;
807833
834+ // Validate behaviour of AWS_LAMBDA_FUNCTION_NAME with special chars
835+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_NAME , 'lambda|function^name' ) ;
836+ mockAttribute (
837+ AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_ARN ,
838+ 'arn:aws:lambda:us-east-1:123456789012:function:lambda|function^name'
839+ ) ;
840+ validateRemoteResourceAttributes (
841+ 'AWS::Lambda::Function' ,
842+ 'lambda^|function^^name' ,
843+ 'arn:aws:lambda:us-east-1:123456789012:function:lambda^|function^^name'
844+ ) ;
845+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_NAME , undefined ) ;
846+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_FUNCTION_ARN , undefined ) ;
847+
808848 // Validate behaviour of AWS_LAMBDA_RESOURCE_MAPPING_ID attribute then remove it.
809849 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_RESOURCE_MAPPING_ID , 'aws_lambda_resource_mapping_id' ) ;
810850 validateRemoteResourceAttributes ( 'AWS::Lambda::EventSourceMapping' , 'aws_lambda_resource_mapping_id' ) ;
811851 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_RESOURCE_MAPPING_ID , undefined ) ;
812852
853+ // Validate behaviour of AWS_LAMBDA_RESOURCE_MAPPING_ID attribute with special chars, then remove it.
854+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_RESOURCE_MAPPING_ID , 'mapping|id^test' ) ;
855+ validateRemoteResourceAttributes ( 'AWS::Lambda::EventSourceMapping' , 'mapping^|id^^test' ) ;
856+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_LAMBDA_RESOURCE_MAPPING_ID , undefined ) ;
857+
813858 // Validate behaviour of AWS_STEPFUNCTIONS_STATEMACHINE_ARN and AWS_STEPFUNCTIONS_ACTIVITY_ARN attributes then remove them.
814859 mockAttribute (
815860 AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_STATEMACHINE_ARN ,
@@ -822,6 +867,18 @@ describe('AwsMetricAttributeGeneratorTest', () => {
822867 ) ;
823868 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_STATEMACHINE_ARN , undefined ) ;
824869
870+ // Validate behaviour of AWS_STEPFUNCTIONS_STATEMACHINE_ARN attribute with special chars, then remove it.
871+ mockAttribute (
872+ AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_STATEMACHINE_ARN ,
873+ 'arn:aws:states:us-east-1:123456789123:stateMachine:test|State^Machine'
874+ ) ;
875+ validateRemoteResourceAttributes (
876+ 'AWS::StepFunctions::StateMachine' ,
877+ 'test^|State^^Machine' ,
878+ 'arn:aws:states:us-east-1:123456789123:stateMachine:test^|State^^Machine'
879+ ) ;
880+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_STATEMACHINE_ARN , undefined ) ;
881+
825882 mockAttribute (
826883 AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_ACTIVITY_ARN ,
827884 'arn:aws:states:us-east-1:123456789123:activity:testActivity'
@@ -833,6 +890,18 @@ describe('AwsMetricAttributeGeneratorTest', () => {
833890 ) ;
834891 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_ACTIVITY_ARN , undefined ) ;
835892
893+ // Validate behaviour of AWS_STEPFUNCTIONS_ACTIVITY_ARN attribute with special chars, then remove it.
894+ mockAttribute (
895+ AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_ACTIVITY_ARN ,
896+ 'arn:aws:states:us-east-1:123456789123:activity:test|Activity^name'
897+ ) ;
898+ validateRemoteResourceAttributes (
899+ 'AWS::StepFunctions::Activity' ,
900+ 'test^|Activity^^name' ,
901+ 'arn:aws:states:us-east-1:123456789123:activity:test^|Activity^^name'
902+ ) ;
903+ mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_STEPFUNCTIONS_ACTIVITY_ARN , undefined ) ;
904+
836905 // Validate behaviour of AWS_TABLE_NAMES attribute with one table name, then remove it.
837906 mockAttribute ( AWS_ATTRIBUTE_KEYS . AWS_DYNAMODB_TABLE_NAMES , [ 'aws_table_name' ] ) ;
838907 validateRemoteResourceAttributes ( 'AWS::DynamoDB::Table' , 'aws_table_name' ) ;
0 commit comments