@@ -2,10 +2,13 @@ import { deployStack } from '../../src/stack';
22import { ActionContext } from '../../src/types' ;
33import {
44 oneFcIac ,
5+ oneFcIacWithStage ,
56 oneFcOneGatewayIac ,
67 oneFcOneGatewayRos ,
78 oneFcRos ,
9+ oneFcWithStageRos ,
810} from '../fixtures/deployFixture' ;
11+ import { cloneDeep , set } from 'lodash' ;
912
1013const mockedRosStackDeploy = jest . fn ( ) ;
1114const mockedResolveCode = jest . fn ( ) ;
@@ -40,4 +43,36 @@ describe('Unit tests for stack deployment', () => {
4043 expect ( mockedRosStackDeploy ) . toHaveBeenCalledTimes ( 1 ) ;
4144 expect ( mockedRosStackDeploy ) . toHaveBeenCalledWith ( stackName , oneFcRos , { stackName } ) ;
4245 } ) ;
46+
47+ it ( 'should reference to default stage mappings when --stage not provided' , async ( ) => {
48+ const options = { stackName : 'my-demo-stack-fc-with-stage-1' , stage : 'default' } ;
49+ mockedRosStackDeploy . mockResolvedValueOnce ( options . stackName ) ;
50+
51+ await deployStack ( options . stackName , oneFcIacWithStage , options as ActionContext ) ;
52+
53+ expect ( mockedRosStackDeploy ) . toHaveBeenCalledTimes ( 1 ) ;
54+ expect ( mockedRosStackDeploy ) . toHaveBeenCalledWith (
55+ options . stackName ,
56+ oneFcWithStageRos ,
57+ options ,
58+ ) ;
59+ } ) ;
60+
61+ it ( 'should reference to specified stage mappings when --stage is provided' , async ( ) => {
62+ const options = { stackName : 'my-demo-stack-fc-with-stage-1' , stage : 'dev' } ;
63+ mockedRosStackDeploy . mockResolvedValueOnce ( options . stackName ) ;
64+
65+ await deployStack ( options . stackName , oneFcIacWithStage , options as ActionContext ) ;
66+
67+ expect ( mockedRosStackDeploy ) . toHaveBeenCalledTimes ( 1 ) ;
68+ expect ( mockedRosStackDeploy ) . toHaveBeenCalledWith (
69+ options . stackName ,
70+ set (
71+ cloneDeep ( oneFcWithStageRos ) ,
72+ 'Resources.hello_fn.Properties.EnvironmentVariables.NODE_ENV.Fn::FindInMap' ,
73+ [ 'stages' , 'dev' , 'node_env' ] ,
74+ ) ,
75+ options ,
76+ ) ;
77+ } ) ;
4378} ) ;
0 commit comments