Skip to content

Commit 39bc911

Browse files
committed
add error path tests for secrets manager
1 parent 0fc6f8c commit 39bc911

File tree

5 files changed

+81
-0
lines changed

5 files changed

+81
-0
lines changed

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2311,6 +2311,41 @@ protected void doTestSecretsManagerDescribeSecret() throws Exception {
23112311
0.0);
23122312
}
23132313

2314+
protected void doTestSecretsManagerError() throws Exception {
2315+
appClient.get("/secretsmanager/error").aggregate().join();
2316+
var traces = mockCollectorClient.getTraces();
2317+
var metrics = mockCollectorClient.getMetrics(
2318+
Set.of(
2319+
AppSignalsConstants.ERROR_METRIC,
2320+
AppSignalsConstants.FAULT_METRIC,
2321+
AppSignalsConstants.LATENCY_METRIC
2322+
));
2323+
2324+
var localService = getApplicationOtelServiceName();
2325+
var localOperation = "GET /secretsmanager/error/";
2326+
var type = "AWS::SecretsManager::Secret";
2327+
var identifier = "nonexistent-secret-id";
2328+
var cloudformationIdentifier = "arn:aws:secretsmanager:us-west-2:000000000000:secret:nonexistent-secret-id";
2329+
2330+
assertSpanClientAttributes(
2331+
traces,
2332+
secretsManagerSpanName("DescribeSecret"),
2333+
getSecretsManagerRpcServiceName(),
2334+
localService,
2335+
localOperation,
2336+
getSecretsManagerServiceName(),
2337+
"DescribeSecret",
2338+
type,
2339+
identifier,
2340+
cloudformationIdentifier,
2341+
"error.test",
2342+
8080,
2343+
"http://error.test:8080",
2344+
400,
2345+
List.of(
2346+
assertAttribute(SemanticConventionsConstants.AWS_SECRET_ARN, "arn:aws:secretsmanager:us-west-2:000000000000:secret:nonexistent-secret-id")));
2347+
}
2348+
23142349
protected void doTestStepFunctionsDescribeStateMachine() throws Exception {
23152350
appClient.get("/sfn/describestatemachine/test-state-machine").aggregate().join();
23162351
var traces = mockCollectorClient.getTraces();

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,11 @@ void testSecretsManagerDescribeSecret() throws Exception {
261261
doTestSecretsManagerDescribeSecret();
262262
}
263263

264+
@Test
265+
void testSecretsManagerError() throws Exception {
266+
doTestSecretsManagerError();
267+
}
268+
264269
@Test
265270
void testStepFunctionsDescribeStateMachine() throws Exception {
266271
doTestStepFunctionsDescribeStateMachine();

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ void testSecretsManagerDescribeSecret() throws Exception {
266266
doTestSecretsManagerDescribeSecret();
267267
}
268268

269+
@Test
270+
void testSecretsManagerError() throws Exception {
271+
doTestSecretsManagerError();
272+
}
273+
269274
@Test
270275
void testStepFunctionsDescribeStateMachine() throws Exception {
271276
doTestStepFunctionsDescribeStateMachine();

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,23 @@ private static void setupSecretsManager() {
684684
secretsManagerClient.describeSecret(describeRequest);
685685
return "";
686686
});
687+
688+
get(
689+
"/secretsmanager/error",
690+
(req, res) -> {
691+
setMainStatus(400);
692+
var errorClient = AWSSecretsManagerClient.builder().withCredentials(CREDENTIALS_PROVIDER)
693+
.withEndpointConfiguration(new EndpointConfiguration("http://error.test;8080", Regions.US_WEST_2.getName()))
694+
.build();
695+
696+
try {
697+
var describeRequest = new DescribeSecretRequest().withSecretId("nonexistent-secret-id");
698+
errorClient.describeSecret(describeRequest);
699+
} catch (Exception e) {
700+
logger.error("Error describing secret", e);
701+
}
702+
return "";
703+
});
687704
}
688705

689706
private static void setupStepFunctions() {

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,25 @@ private static void setupSecretsManager() {
711711
secretsManagerClient.describeSecret(describeRequest);
712712
return "";
713713
});
714+
get(
715+
"/secretsmanager/error",
716+
(req, res) -> {
717+
setMainStatus(400);
718+
var errorClient = SecretsManagerClient.builder()
719+
.endpointOverride(URI.create("http://error.test:8080"))
720+
.credentialsProvider(CREDENTIALS_PROVIDER)
721+
.build();
722+
723+
try {
724+
var describeRequest = DescribeSecretRequest.builder()
725+
.secretId("nonexistent-secret-id")
726+
.build();
727+
errorClient.describeSecret(describeRequest);
728+
} catch (Exception e) {
729+
logger.error("Error describing secret", e);
730+
}
731+
return "";
732+
});
714733
}
715734

716735
private static void setupStepFunctions() {

0 commit comments

Comments
 (0)