3
3
*
4
4
* @group e2e/layers/all
5
5
*/
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' ;
8
8
import { LayerPublisherStack } from '../../src/layer-publisher-stack' ;
9
9
import {
10
- deployStack ,
11
- destroyStack ,
12
- } from '../../../packages/commons/tests/utils/cdk-cli ' ;
10
+ TestStack ,
11
+ defaultRuntime ,
12
+ } from '@aws-lambda-powertools/testing-utils ' ;
13
13
import {
14
14
generateUniqueName ,
15
15
invokeFunction ,
@@ -30,7 +30,7 @@ import { v4 } from 'uuid';
30
30
import path from 'path' ;
31
31
import packageJson from '../../package.json' ;
32
32
33
- const runtime : string = process . env . RUNTIME || 'nodejs18x' ;
33
+ const runtime : string = process . env . RUNTIME || defaultRuntime ;
34
34
35
35
if ( ! isValidRuntimeKey ( runtime ) ) {
36
36
throw new Error ( `Invalid runtime key: ${ runtime } ` ) ;
@@ -66,30 +66,33 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
66
66
const lambdaFunctionCodeFile = 'layerPublisher.class.test.functionCode.ts' ;
67
67
68
68
const invocationCount = 1 ;
69
-
70
- const integTestApp = new App ( ) ;
71
- let stackLayer : LayerPublisherStack ;
72
- let stackFunction : Stack ;
73
-
74
69
const powerToolsPackageVersion = packageJson . version ;
70
+ const layerName = generateUniqueName (
71
+ RESOURCE_NAME_PREFIX ,
72
+ uuid ,
73
+ runtime ,
74
+ 'layer'
75
+ ) ;
75
76
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 ) ;
83
85
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 ( ) ;
89
88
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 ,
93
96
functionName : functionName ,
94
97
functionEntry : path . join ( __dirname , lambdaFunctionCodeFile ) ,
95
98
tracing : Tracing . ACTIVE ,
@@ -107,11 +110,10 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
107
110
'@aws-lambda-powertools/tracer' ,
108
111
] ,
109
112
} ,
110
- layers : [ stackLayer . lambdaLayerVersion ] ,
113
+ layers : [ layerVersion ] ,
111
114
} ) ;
112
115
113
- await deployStack ( integTestApp , stackLayer ) ;
114
- await deployStack ( integTestApp , stackFunction ) ;
116
+ await testStack . deploy ( ) ;
115
117
116
118
invocationLogs = await invokeFunction (
117
119
functionName ,
@@ -167,8 +169,8 @@ describe(`layers E2E tests (LayerPublisherStack) for runtime: ${runtime}`, () =>
167
169
168
170
afterAll ( async ( ) => {
169
171
if ( ! process . env . DISABLE_TEARDOWN ) {
170
- await destroyStack ( integTestApp , stackFunction ) ;
171
- await destroyStack ( integTestApp , stackLayer ) ;
172
+ await testLayerStack . destroy ( ) ;
173
+ await testStack . destroy ( ) ;
172
174
}
173
175
} , TEARDOWN_TIMEOUT ) ;
174
176
} ) ;
0 commit comments