Skip to content

Commit 57e7ff4

Browse files
committed
add missing special char assertions for new aws resources
1 parent 0584a66 commit 57e7ff4

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

aws-distro-opentelemetry-node-autoinstrumentation/test/aws-metric-attribute-generator.test.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)