File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed
lib/deploy/events/apiGateway Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -69,12 +69,12 @@ const LAMBDA_PROXY_REQUEST_TEMPLATE = `
6969 #set( $map = $context.authorizer )
7070 "authorizer": $loop,
7171 },
72- "body": "$util.escapeJavaScript("$body")",
72+ "body": "$util.escapeJavaScript("$body").replaceAll("\\\\'", "'") ",
7373 "isBase64Encoded": false
7474 }
7575 #end
7676 {
77- "input": "$util.escapeJavaScript("$smInput")",
77+ "input": "$util.escapeJavaScript("$smInput").replaceAll("\\\\'", "'") ",
7878 "name":"$context.requestId",
7979 "stateMachineArn":"\${StateMachineArn}"
8080 }` ;
Original file line number Diff line number Diff line change @@ -284,6 +284,20 @@ describe('#methods()', () => {
284284 } ) ;
285285 } ) ;
286286
287+ describe ( '#getLambdaProxyRequestTemplates()' , ( ) => {
288+ it ( 'application/json proxy template should not have escaped single quotes' , ( ) => {
289+ const lambdaProxyRequestTemplate = serverlessStepFunctions
290+ . getLambdaProxyRequestTemplates ( 'stateMachine' , undefined ) ;
291+
292+ // Using negative lookahead, look for escapeJavaScript calls without the
293+ // required stripping of escaped single quotes after
294+ const escapeJavascriptPattern = / \$ u t i l .e s c a p e J a v a S c r i p t \( " \$ \w + " \) / ;
295+ const unescapeSingleQuotesPattern = / \. r e p l a c e A l l \( " \\ \\ ' " , * " ' " \) / ;
296+ const regExp = new RegExp ( `${ escapeJavascriptPattern . source } (?!${ unescapeSingleQuotesPattern . source } )` ) ;
297+ expect ( lambdaProxyRequestTemplate [ 'application/json' ] [ 'Fn::Sub' ] [ 0 ] ) . not . to . match ( regExp ) ;
298+ } ) ;
299+ } ) ;
300+
287301 describe ( '#getMethodResponses()' , ( ) => {
288302 it ( 'should return a corresponding methodResponses resource' , ( ) => {
289303 expect ( serverlessStepFunctions . getMethodResponses ( ) . Properties )
You can’t perform that action at this time.
0 commit comments