@@ -30,12 +30,15 @@ vi.mock("@aws-sdk/client-lambda", () => {
3030 return { LambdaClient, InvokeCommand}
3131} )
3232
33- const getCloudFormationExportsMock = vi . fn ( )
33+ const getCloudFormationExportsMock = vi . hoisted ( ( ) => vi . fn ( ) )
3434
35- vi . mock ( "../../src/config" , ( ) => ( {
36- getCloudFormationExports : ( ) => getCloudFormationExportsMock ( ) ,
37- getCFConfigValue : ( exports : Record < string , string > , name : string ) => exports [ name ]
38- } ) )
35+ vi . mock ( "../../src/config" , async ( importOriginal ) => {
36+ const originalModule = await importOriginal < typeof import ( "../../src/config" ) > ( )
37+ return {
38+ ...originalModule ,
39+ getCloudFormationExports : getCloudFormationExportsMock
40+ }
41+ } )
3942
4043function createSpec ( ) {
4144 return {
@@ -94,17 +97,15 @@ function functionNameFromCall(callIndex: number) {
9497describe ( "deployApi" , ( ) => {
9598 beforeEach ( ( ) => {
9699 lambdaSendMock . mockReset ( ) . mockResolvedValue ( { Payload : Buffer . from ( '"ok"' ) } )
97- getCloudFormationExportsMock . mockReset ( )
100+ getCloudFormationExportsMock . mockReset ( ) . mockResolvedValue ( defaultExportsMap )
98101 } )
99102
100103 test ( "stores secrets, deploys instance and publishes spec for internal-dev" , async ( ) => {
101- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
102-
103104 await deployApi (
104105 buildConfig ( {
105106 version : "2.0.0" ,
106107 apigeeEnvironment : "internal-dev" ,
107- stackName : "eps-stack-001 "
108+ stackName : "eps-stack"
108109 } ) ,
109110 false
110111 )
@@ -130,7 +131,7 @@ describe("deployApi", () => {
130131 expect ( instancePayload . specDefinition . info . version ) . toBe ( "2.0.0" )
131132 expect ( instancePayload . specDefinition [ "x-nhsd-apim" ] . target . security . secret ) . toBe ( "mtls/secret" )
132133 expect ( instancePayload . specDefinition [ "x-nhsd-apim" ] . target . url )
133- . toBe ( "https://eps-stack-001 .nonprod.eps.national.nhs.uk" )
134+ . toBe ( "https://eps-stack-2-0-0 .nonprod.eps.national.nhs.uk" )
134135 expect ( instancePayload . specDefinition . components . securitySchemes [ "nhs-cis2-aal3" ] . $ref )
135136 . toBe ( "https://proxygen.ptl.api.platform.nhs.uk/components/securitySchemes/nhs-cis2-aal3" )
136137 expect ( instancePayload . specDefinition . servers [ 0 ] . url )
@@ -144,8 +145,6 @@ describe("deployApi", () => {
144145 } )
145146
146147 test ( "handles pull requests in sandbox without storing secrets" , async ( ) => {
147- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
148-
149148 await deployApi (
150149 buildConfig ( {
151150 version : "3.1.4" ,
@@ -171,8 +170,6 @@ describe("deployApi", () => {
171170 } )
172171
173172 test ( "uses prod lambdas and prod security scheme refs" , async ( ) => {
174- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
175-
176173 await deployApi (
177174 buildConfig ( {
178175 version : "4.0.0" ,
@@ -196,8 +193,6 @@ describe("deployApi", () => {
196193 } )
197194
198195 test ( "publishes spec to prod catalogue for int environment" , async ( ) => {
199- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
200-
201196 await deployApi (
202197 buildConfig ( {
203198 version : "5.0.0" ,
@@ -217,7 +212,6 @@ describe("deployApi", () => {
217212 } )
218213
219214 test ( "dry run only logs intended invocations" , async ( ) => {
220- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
221215 const logSpy = vi . spyOn ( console , "log" ) . mockImplementation ( ( ) => undefined )
222216
223217 await deployApi (
@@ -237,7 +231,6 @@ describe("deployApi", () => {
237231 } )
238232
239233 test ( "throws when lambda invocation returns a FunctionError" , async ( ) => {
240- getCloudFormationExportsMock . mockResolvedValue ( defaultExportsMap )
241234 lambdaSendMock
242235 . mockResolvedValueOnce ( { FunctionError : "Handled" , Payload : Buffer . from ( '"bad"' ) } )
243236
0 commit comments