Skip to content

Commit e68f39c

Browse files
authored
Merge pull request #875 from aws-powertools/chore/fix-e2e-tests
chore: fix e2e tests
2 parents fa2243e + 0e9287d commit e68f39c

File tree

7 files changed

+32
-55
lines changed

7 files changed

+32
-55
lines changed

libraries/tests/e2e/Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Navigate to the directory containing your CDK stacks and deploy them:
2323
cd infra
2424
cdk deploy --require-approval never
2525
cd ../infra-aot
26-
cdk deploy --require-approval never
26+
cdk deploy CoreStack --require-approval never --context architecture=arm64
2727
```
2828
### 3. Run the tests
2929

libraries/tests/e2e/functions/core/logging/Function/test/Function.Tests/FunctionTests.cs

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -173,54 +173,24 @@ private void AssertEventLog(string functionName, bool isColdStart, string output
173173

174174
Assert.True(messageElement.TryGetProperty("HttpMethod", out JsonElement httpMethodElement));
175175
Assert.Equal("POST", httpMethodElement.GetString());
176-
177-
Assert.True(messageElement.TryGetProperty("Headers", out JsonElement headersElement));
178-
Assert.True(headersElement.TryGetProperty("Accept-Encoding", out JsonElement acceptEncodingElement));
179-
Assert.Equal("gzip, deflate, sdch", acceptEncodingElement.GetString());
180-
181-
Assert.True(headersElement.TryGetProperty("Accept-Language", out JsonElement acceptLanguageElement));
182-
Assert.Equal("en-US,en;q=0.8", acceptLanguageElement.GetString());
183-
184-
Assert.True(headersElement.TryGetProperty("Cache-Control", out JsonElement cacheControlElement));
185-
Assert.Equal("max-age=0", cacheControlElement.GetString());
186-
187-
Assert.True(
188-
messageElement.TryGetProperty("QueryStringParameters", out JsonElement queryStringParametersElement));
189-
Assert.True(queryStringParametersElement.TryGetProperty("Foo", out JsonElement fooElement));
190-
Assert.Equal("bar", fooElement.GetString());
191-
176+
192177
Assert.True(messageElement.TryGetProperty("RequestContext", out JsonElement requestContextElement));
193178
Assert.True(requestContextElement.TryGetProperty("Path", out JsonElement requestContextPathElement));
194179
Assert.Equal("/prod/path/to/resource", requestContextPathElement.GetString());
195180

196-
Assert.True(requestContextElement.TryGetProperty("AccountId", out JsonElement accountIdElement));
197-
Assert.Equal("123456789012", accountIdElement.GetString());
198-
199181
Assert.True(requestContextElement.TryGetProperty("ResourceId", out JsonElement resourceIdElement));
200182
Assert.Equal("123456", resourceIdElement.GetString());
201-
202-
Assert.True(requestContextElement.TryGetProperty("Stage", out JsonElement stageElement));
203-
Assert.Equal("prod", stageElement.GetString());
204-
183+
205184
Assert.True(requestContextElement.TryGetProperty("RequestId", out JsonElement requestIdElement));
206185
Assert.Equal("c6af9ac6-7b61-11e6-9a41-93e8deadbeef", requestIdElement.GetString());
207-
208-
Assert.True(requestContextElement.TryGetProperty("ResourcePath", out JsonElement resourcePathElement));
209-
Assert.Equal("/{proxy+}", resourcePathElement.GetString());
210-
186+
211187
Assert.True(
212188
requestContextElement.TryGetProperty("HttpMethod", out JsonElement requestContextHttpMethodElement));
213189
Assert.Equal("POST", requestContextHttpMethodElement.GetString());
214190

215191
Assert.True(requestContextElement.TryGetProperty("ApiId", out JsonElement apiIdElement));
216192
Assert.Equal("1234567890", apiIdElement.GetString());
217193

218-
Assert.True(requestContextElement.TryGetProperty("RequestTime", out JsonElement requestTimeElement));
219-
Assert.Equal("09/Apr/2015:12:34:56 +0000", requestTimeElement.GetString());
220-
221-
Assert.True(requestContextElement.TryGetProperty("RequestTimeEpoch", out JsonElement requestTimeEpochElement));
222-
Assert.Equal(1428582896000, requestTimeEpochElement.GetInt64());
223-
224194
Assert.True(messageElement.TryGetProperty("Body", out JsonElement bodyElement));
225195
Assert.Equal("hello world", bodyElement.GetString());
226196

libraries/tests/e2e/functions/core/metrics/Function/test/Function.Tests/FunctionTests.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public FunctionTests(ITestOutputHelper testOutputHelper)
2727

2828
[Trait("Category", "AOT")]
2929
[Theory]
30-
[InlineData("E2ETestLambda_X64_AOT_NET8_metrics")]
31-
[InlineData("E2ETestLambda_ARM_AOT_NET8_metrics")]
30+
[InlineData("E2ETestLambda_X64_AOT_NET8_metrics_AOT-Function")]
31+
[InlineData("E2ETestLambda_ARM_AOT_NET8_metrics_AOT-Function")]
3232
public async Task AotFunctionTest(string functionName)
3333
{
3434
_functionName = functionName;
@@ -136,14 +136,32 @@ private async Task AssertCloudWatch()
136136
]
137137
};
138138

139-
var response = await cloudWatchClient.ListMetricsAsync(request);
139+
// retry n amount of times to ensure metrics are available
140+
var response = new ListMetricsResponse();
141+
for (int i = 0; i < 5; i++)
142+
{
143+
try
144+
{
145+
response = await cloudWatchClient.ListMetricsAsync(request);
146+
if (response.Metrics.Count > 6)
147+
{
148+
break;
149+
}
150+
}
151+
catch (Exception ex)
152+
{
153+
_testOutputHelper.WriteLine($"Attempt {i + 1}: Failed to list metrics: {ex.Message}");
154+
}
155+
156+
await Task.Delay(5000); // wait for 5 seconds before retrying
157+
}
140158

141159
Assert.Equal(7, response.Metrics.Count);
142160

143161
foreach (var metric in response.Metrics)
144162
{
145163
Assert.Equal("Test", metric.Namespace);
146-
164+
147165
switch (metric.MetricName)
148166
{
149167
case "ColdStart":
@@ -317,6 +335,6 @@ private async Task ForceColdStart()
317335

318336
_ = await _lambdaClient.UpdateFunctionConfigurationAsync(updateRequest);
319337

320-
await Task.Delay(2000);
338+
await Task.Delay(15000);
321339
}
322340
}

libraries/tests/e2e/functions/core/tracing/Function/test/Function.Tests/FunctionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public FunctionTests(ITestOutputHelper testOutputHelper)
2525

2626
[Trait("Category", "AOT")]
2727
[Theory]
28-
[InlineData("E2ETestLambda_X64_AOT_NET8_tracing")]
29-
[InlineData("E2ETestLambda_ARM_AOT_NET8_tracing")]
28+
[InlineData("E2ETestLambda_X64_AOT_NET8_tracing_AOT-Function")]
29+
[InlineData("E2ETestLambda_ARM_AOT_NET8_tracing_AOT-Function")]
3030
public async Task AotFunctionTest(string functionName)
3131
{
3232
await TestFunction(functionName);

libraries/tests/e2e/functions/idempotency/Function/test/Function.Tests/FunctionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ private async Task IdempotencyHandler(string functionName, string? keyPrefix = n
186186

187187
// Assert DynamoDB
188188
await AssertDynamoDbData(
189-
$"{key}#35973cf447e6cc11008d603c791a232f",
189+
$"{key}#24e83361c8bd544887aa99ab26395d54",
190190
guid1);
191191
}
192192

@@ -323,7 +323,7 @@ private async Task AssertDynamoDbData(string id, string requestId, bool isSavedD
323323

324324
return await ExecuteRequest(request);
325325
}
326-
326+
327327
private async Task<(APIGatewayProxyResponse Response, string Guid)> ExecuteRequest(InvokeRequest request)
328328
{
329329
var response = await _lambdaClient.InvokeAsync(request);

libraries/tests/e2e/functions/payload.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,12 @@
44
"path": "/path/to/resource",
55
"httpMethod": "POST",
66
"isBase64Encoded": false,
7-
"queryStringParameters": {
8-
"foo": "bar"
9-
},
10-
"headers": {
11-
"Accept-Encoding": "gzip, deflate, sdch",
12-
"Accept-Language": "en-US,en;q=0.8",
13-
"Cache-Control": "max-age=0"
14-
},
157
"requestContext": {
168
"accountId": "123456789012",
179
"resourceId": "123456",
1810
"stage": "prod",
1911
"requestId": "c6af9ac6-7b61-11e6-9a41-93e8deadbeef",
20-
"requestTime": "09/Apr/2015:12:34:56 +0000",
21-
"requestTimeEpoch": 1428582896000,
2212
"path": "/prod/path/to/resource",
23-
"resourcePath": "/{proxy+}",
2413
"httpMethod": "POST",
2514
"apiId": "1234567890",
2615
"protocol": "HTTP/1.1"

libraries/tests/e2e/infra-aot/CoreAotStack.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ private void CreateFunctionConstructs(string utility, string function = "AOT-Fun
4747
Name = $"E2ETestLambda_{arch}_AOT_NET8_{utility}_{function}",
4848
SourcePath = baseAotPath,
4949
DistPath = distAotPath,
50-
Handler = $"{function}.Function::AWS.Lambda.Powertools.{utility}.{function}.Function.FunctionHandler"
50+
Handler = function
5151
};
5252

5353
CreateFunctionConstruct(construct);

0 commit comments

Comments
 (0)