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' ;
88import { LayerPublisherStack } from '../../src/layer-publisher-stack' ;
99import {
10- deployStack ,
11- destroyStack ,
12- } from '../../../packages/commons/tests/utils/cdk-cli ' ;
10+ TestStack ,
11+ defaultRuntime ,
12+ } from '@aws-lambda-powertools/testing-utils ' ;
1313import {
1414 generateUniqueName ,
1515 invokeFunction ,
@@ -30,7 +30,7 @@ import { v4 } from 'uuid';
3030import path from 'path' ;
3131import packageJson from '../../package.json' ;
3232
33- const runtime : string = process . env . RUNTIME || 'nodejs18x' ;
33+ const runtime : string = process . env . RUNTIME || defaultRuntime ;
3434
3535if ( ! 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} ) ;
0 commit comments