@@ -19,19 +19,24 @@ import { cloneDeep, set } from 'lodash';
1919
2020const mockedRosStackDeploy = jest . fn ( ) ;
2121const mockedResolveCode = jest . fn ( ) ;
22+ const mockedPublishAssets = jest . fn ( ) ;
23+
2224jest . mock ( '../../src/common' , ( ) => ( {
2325 ...jest . requireActual ( '../../src/common' ) ,
2426 rosStackDeploy : ( ...args : unknown [ ] ) => mockedRosStackDeploy ( ...args ) ,
27+ publishAssets : ( ...args : unknown [ ] ) => mockedPublishAssets ( ...args ) ,
2528 resolveCode : ( path : string ) => mockedResolveCode ( path ) ,
2629} ) ) ;
2730
2831describe ( 'Unit tests for stack deployment' , ( ) => {
2932 beforeEach ( ( ) => {
3033 mockedResolveCode . mockReturnValueOnce ( 'resolved-code' ) ;
34+ mockedPublishAssets . mockResolvedValueOnce ( 'published-assets-bucket' ) ;
3135 } ) ;
3236 afterEach ( ( ) => {
3337 mockedRosStackDeploy . mockRestore ( ) ;
3438 mockedResolveCode . mockRestore ( ) ;
39+ mockedPublishAssets . mockRestore ( ) ;
3540 } ) ;
3641
3742 it ( 'should deploy generated stack when iac is valid' , async ( ) => {
@@ -95,6 +100,7 @@ describe('Unit tests for stack deployment', () => {
95100 options ,
96101 ) ;
97102 } ) ;
103+
98104 it ( 'should evaluate service name as pure string when it reference ${ctx.stage}' , async ( ) => {
99105 const options = { stackName : 'my-demo-stack-fc-with-stage-1' , stage : 'dev' } ;
100106 mockedRosStackDeploy . mockResolvedValueOnce ( options . stackName ) ;
@@ -109,11 +115,11 @@ describe('Unit tests for stack deployment', () => {
109115 ) ;
110116 } ) ;
111117
112- it ( 'should create bucket and store code artifact to bucket when code size > 15MB' , ( ) => {
118+ it ( 'should create bucket and store code artifact to bucket when code size > 15MB' , async ( ) => {
113119 const stackName = 'my-large-code-stack' ;
114120 mockedRosStackDeploy . mockResolvedValueOnce ( stackName ) ;
115121
116- deployStack (
122+ await deployStack (
117123 stackName ,
118124 set (
119125 cloneDeep ( oneFcOneGatewayIac ) ,
@@ -123,16 +129,27 @@ describe('Unit tests for stack deployment', () => {
123129 { stackName } as ActionContext ,
124130 ) ;
125131
126- expect ( mockedResolveCode ) . toHaveBeenCalledTimes ( 1 ) ;
132+ expect ( mockedPublishAssets ) . toHaveBeenCalledTimes ( 1 ) ;
133+ expect ( mockedRosStackDeploy ) . toHaveBeenCalledTimes ( 1 ) ;
134+ expect ( mockedPublishAssets ) . toHaveBeenCalledWith (
135+ expect . objectContaining ( {
136+ dockerImages : { } ,
137+ files : expect . any ( Object ) ,
138+ rootPath : expect . any ( String ) ,
139+ version : '7.0.0' ,
140+ } ) ,
141+
142+ { stackName } ,
143+ ) ;
127144 expect ( mockedRosStackDeploy ) . toHaveBeenCalledWith ( stackName , largeCodeRos , { stackName } ) ;
128145 } ) ;
129146
130147 describe ( 'unit test for deploy of databases' , ( ) => {
131- it ( 'should deploy elasticsearch serverless when database minimum fields provided' , ( ) => {
148+ it ( 'should deploy elasticsearch serverless when database minimum fields provided' , async ( ) => {
132149 const stackName = 'my-demo-es-serverless-stack' ;
133150 mockedRosStackDeploy . mockResolvedValueOnce ( stackName ) ;
134151
135- deployStack ( stackName , esServerlessMinimumIac , { stackName } as ActionContext ) ;
152+ await deployStack ( stackName , esServerlessMinimumIac , { stackName } as ActionContext ) ;
136153
137154 expect ( mockedRosStackDeploy ) . toHaveBeenCalledTimes ( 1 ) ;
138155 expect ( mockedRosStackDeploy ) . toHaveBeenCalledWith ( stackName , esServerlessMinimumRos , {
0 commit comments