Skip to content

Commit 62bc648

Browse files
committed
add secrets manager error contract tests
1 parent 6c79f55 commit 62bc648

File tree

5 files changed

+66
-0
lines changed

5 files changed

+66
-0
lines changed

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/base/AwsSdkBaseTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2292,4 +2292,36 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
22922292
cloudformationIdentifier,
22932293
0.0);
22942294
}
2295+
2296+
protected void doTestSecretsManagerError() throws Exception {
2297+
appClient.get("/secretsmanager/error").aggregate().join();
2298+
var traces = mockCollectorClient.getTraces();
2299+
var metrics = mockCollectorClient.getMetrics(
2300+
Set.of(
2301+
AppSignalsConstants.ERROR_METRIC,
2302+
AppSignalsConstants.FAULT_METRIC,
2303+
AppSignalsConstants.LATENCY_METRIC));
2304+
var localService = getApplicationOtelServiceName();
2305+
var localOperation = "GET /secretsmanager/error";
2306+
var type = "AWS::SecretsManager::Secret";
2307+
var identifier = "error";
2308+
var cloudformationIdentifier = "arn:aws:secretsmanager:us-west-2:000000000000:secret:error";
2309+
assertSpanClientAttributes(
2310+
traces,
2311+
secretsManagerSpanName("DescribeSecret"),
2312+
getSecretsManagerRpcServiceName(),
2313+
localService,
2314+
localOperation,
2315+
getSecretsManagerServiceName(),
2316+
"DescribeSecret",
2317+
type,
2318+
identifier,
2319+
cloudformationIdentifier,
2320+
"error.test",
2321+
8080,
2322+
"http://error.test:8080",
2323+
400,
2324+
List.of(
2325+
assertAttribute(SemanticConventionsConstants.AWS_SECRET_ARN, "arn:aws:secretsmanager:us-west-2:000000000000:secret:error")));
2326+
}
22952327
}

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,4 +248,7 @@ void testBedrockAgentRuntimeKnowledgeBaseId() {
248248

249249
@Test
250250
void testSecretsManagerCreateSecret() throws Exception { doTestSecretsManagerCreateSecret(); }
251+
252+
@Test
253+
void testSecretsManagerError() throws Exception { doTestSecretsManagerError(); }
251254
}

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,4 +249,7 @@ void testBedrockAgentRuntimeAgentId() {
249249

250250
@Test
251251
void testSecretsManagerCreateSecret() throws Exception { doTestSecretsManagerCreateSecret(); }
252+
253+
@Test
254+
void testSecretsManagerError() throws Exception { doTestSecretsManagerError(); }
252255
}

appsignals-tests/images/aws-sdk/aws-sdk-v1/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,5 +647,19 @@ private static void setupSecretsManager() {
647647
secretsManagerClient.createSecret(createSecretRequest);
648648
return "";
649649
});
650+
get(
651+
"/secretsmanager/error",
652+
(req, res) -> {
653+
setMainStatus(400);
654+
var errorClient = AWSSecretsManagerClient.builder().
655+
withCredentials(CREDENTIALS_PROVIDER).
656+
withEndpointConfiguration(new EndpointConfiguration("http://error.test:8080", Regions.US_WEST_2.getName()))
657+
.build();
658+
var describeSecretRequest = new DescribeSecretRequest().withSecretId("error");
659+
try {
660+
errorClient.describeSecret(describeSecretRequest);
661+
} catch (Exception e) {}
662+
return "";
663+
});
650664
}
651665
}

appsignals-tests/images/aws-sdk/aws-sdk-v2/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,5 +675,19 @@ private static void setupSecretsManager() {
675675
secretsManagerClient.createSecret(createSecretRequest);
676676
return "";
677677
});
678+
get(
679+
"/secretsmanager/error",
680+
(req, res) -> {
681+
var errorClient = SecretsManagerClient.builder()
682+
.endpointOverride(URI.create("http://error.test:8080"))
683+
.credentialsProvider(CREDENTIALS_PROVIDER)
684+
.build();
685+
setMainStatus(400);
686+
var describeSecretRequest = DescribeSecretRequest.builder().secretId("error").build();
687+
try {
688+
errorClient.describeSecret(describeSecretRequest);
689+
} catch (Exception e) {}
690+
return "";
691+
});
678692
}
679693
}

0 commit comments

Comments
 (0)