Skip to content

Commit 4318d6f

Browse files
authored
improv(tests): adopt aws cdk cli lib (#1633)
* tests(ci): add testing package * chore: add comments on types * chore: improve code smells * chore: improve code smells * feat(testing): created base testing * chore: removed aws-cdk-lib & aws-cdk * tests: moved tracer to new testing lib * tests: move logger to new testing * tests: move metrics to new testing * restored string * tests: move idempotency to new testing * tests: move parameters to new testing * chore: added testing pkg to ci * tests: move layers to new testing * chore: remove ref suffix
1 parent 8ea1672 commit 4318d6f

36 files changed

+1387
-1458
lines changed

Diff for: .github/actions/cached-node-modules/action.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ runs:
4141
npm run build -w packages/metrics & \
4242
npm run build -w packages/parameters & \
4343
npm run build -w packages/idempotency & \
44-
npm run build -w packages/batch
44+
npm run build -w packages/batch & \
45+
npm run build -w packages/testing
4546
shell: bash

Diff for: layers/package.json

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@
3434
},
3535
"homepage": "https://github.com/aws-powertools/powertools-lambda-typescript#readme",
3636
"devDependencies": {
37+
"@aws-lambda-powertools/testing-utils": "file:../packages/testing",
3738
"source-map-support": "^0.5.21"
39+
},
40+
"dependencies": {
41+
"aws-cdk": "^2.88.0",
42+
"aws-cdk-lib": "^2.88.0",
43+
"esbuild": "^0.18.17"
3844
}
3945
}

Diff for: layers/tests/e2e/layerPublisher.test.ts

+33-31
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
*
44
* @group e2e/layers/all
55
*/
6-
import { App, Stack } from 'aws-cdk-lib';
7-
import { Tracing } from 'aws-cdk-lib/aws-lambda';
6+
import { App } from 'aws-cdk-lib';
7+
import { LayerVersion, Tracing } from 'aws-cdk-lib/aws-lambda';
88
import { LayerPublisherStack } from '../../src/layer-publisher-stack';
99
import {
10-
deployStack,
11-
destroyStack,
12-
} from '../../../packages/commons/tests/utils/cdk-cli';
10+
TestStack,
11+
defaultRuntime,
12+
} from '@aws-lambda-powertools/testing-utils';
1313
import {
1414
generateUniqueName,
1515
invokeFunction,
@@ -30,7 +30,7 @@ import { v4 } from 'uuid';
3030
import path from 'path';
3131
import packageJson from '../../package.json';
3232

33-
const runtime: string = process.env.RUNTIME || 'nodejs18x';
33+
const runtime: string = process.env.RUNTIME || defaultRuntime;
3434

3535
if (!isValidRuntimeKey(runtime)) {
3636
throw new Error(`Invalid runtime key: ${runtime}`);
@@ -66,30 +66,33 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
6666
const lambdaFunctionCodeFile = 'layerPublisher.class.test.functionCode.ts';
6767

6868
const invocationCount = 1;
69-
70-
const integTestApp = new App();
71-
let stackLayer: LayerPublisherStack;
72-
let stackFunction: Stack;
73-
7469
const powerToolsPackageVersion = packageJson.version;
70+
const layerName = generateUniqueName(
71+
RESOURCE_NAME_PREFIX,
72+
uuid,
73+
runtime,
74+
'layer'
75+
);
7576

76-
beforeAll(async () => {
77-
const layerName = generateUniqueName(
78-
RESOURCE_NAME_PREFIX,
79-
uuid,
80-
runtime,
81-
'layer'
82-
);
77+
const testStack = new TestStack(stackNameFunction);
78+
const layerApp = new App();
79+
const layerStack = new LayerPublisherStack(layerApp, stackNameLayers, {
80+
layerName,
81+
powertoolsPackageVersion: powerToolsPackageVersion,
82+
ssmParameterLayerArn: ssmParameterLayerName,
83+
});
84+
const testLayerStack = new TestStack(stackNameLayers, layerApp, layerStack);
8385

84-
stackLayer = new LayerPublisherStack(integTestApp, stackNameLayers, {
85-
layerName: layerName,
86-
powertoolsPackageVersion: powerToolsPackageVersion,
87-
ssmParameterLayerArn: ssmParameterLayerName,
88-
});
86+
beforeAll(async () => {
87+
const outputs = await testLayerStack.deploy();
8988

90-
stackFunction = createStackWithLambdaFunction({
91-
app: integTestApp,
92-
stackName: stackNameFunction,
89+
const layerVersion = LayerVersion.fromLayerVersionArn(
90+
testStack.stack,
91+
'LayerVersionArnReference',
92+
outputs['LatestLayerArn']
93+
);
94+
createStackWithLambdaFunction({
95+
stack: testStack.stack,
9396
functionName: functionName,
9497
functionEntry: path.join(__dirname, lambdaFunctionCodeFile),
9598
tracing: Tracing.ACTIVE,
@@ -107,11 +110,10 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
107110
'@aws-lambda-powertools/tracer',
108111
],
109112
},
110-
layers: [stackLayer.lambdaLayerVersion],
113+
layers: [layerVersion],
111114
});
112115

113-
await deployStack(integTestApp, stackLayer);
114-
await deployStack(integTestApp, stackFunction);
116+
await testStack.deploy();
115117

116118
invocationLogs = await invokeFunction(
117119
functionName,
@@ -167,8 +169,8 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
167169

168170
afterAll(async () => {
169171
if (!process.env.DISABLE_TEARDOWN) {
170-
await destroyStack(integTestApp, stackFunction);
171-
await destroyStack(integTestApp, stackLayer);
172+
await testLayerStack.destroy();
173+
await testStack.destroy();
172174
}
173175
}, TEARDOWN_TIMEOUT);
174176
});

Diff for: lerna.json

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"packages/parameters",
88
"packages/idempotency",
99
"packages/batch",
10+
"packages/testing",
1011
"examples/cdk",
1112
"examples/sam",
1213
"layers"

0 commit comments

Comments
 (0)