fix(AWS API Gateway): Fix resolution of request parameters required value

(PR #8329)
This commit is contained in:
Oz Weiss 2020-10-06 14:47:32 +03:00 committed by GitHub
parent e75339958f
commit d2fb696ebd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 1 deletions

View File

@ -14,7 +14,10 @@ module.exports = {
const requestParameters = {};
if (event.http.request && event.http.request.parameters) {
Object.entries(event.http.request.parameters).forEach(([key, value]) => {
requestParameters[key] = value.required === undefined ? value : value.required;
requestParameters[key] = (() => {
if (!_.isObject(value)) return value;
return value.required != null ? value.required : true;
})();
});
}

View File

@ -4,6 +4,7 @@ const expect = require('chai').expect;
const AwsCompileApigEvents = require('../../index');
const Serverless = require('../../../../../../../../Serverless');
const AwsProvider = require('../../../../../../provider/awsProvider');
const runServerless = require('../../../../../../../../../test/utils/run-serverless');
describe('#compileMethods()', () => {
let serverless;
@ -603,6 +604,43 @@ describe('#compileMethods()', () => {
});
});
it('should set required to true when omitted from mapped value', async () => {
const { cfTemplate } = await runServerless({
cliArgs: ['package'],
fixture: 'function',
configExt: {
functions: {
foo: {
events: [
{
http: {
path: 'users/create',
method: 'post',
integration: 'HTTP_PROXY',
request: {
uri: 'https://example.com',
parameters: {
querystrings: {
foo: {
mappedValue: 'bar',
},
},
},
},
},
},
],
},
},
},
});
expect(
cfTemplate.Resources.ApiGatewayMethodUsersCreatePost.Properties.RequestParameters[
'method.request.querystring.foo'
]
).to.equal(true);
});
it('should set authorizer config for AWS_IAM', () => {
awsCompileApigEvents.validated.events = [
{