mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
'use strict';
|
|
|
|
const expect = require('chai').expect;
|
|
const AwsCompileApigEvents = require('../awsCompileApigEvents');
|
|
const Serverless = require('../../../Serverless');
|
|
|
|
describe('#compileMethods()', () => {
|
|
let serverless;
|
|
let awsCompileApigEvents;
|
|
|
|
const serviceResourcesAwsResourcesObjectMock = {
|
|
Resources: {
|
|
PostMethodApigEvent0: {
|
|
Type: 'AWS::ApiGateway::Method',
|
|
Properties: {
|
|
AuthorizationType: 'NONE',
|
|
HttpMethod: 'POST',
|
|
MethodResponses: [
|
|
{
|
|
ResponseModels: {},
|
|
ResponseParameters: {},
|
|
StatusCode: '200',
|
|
},
|
|
],
|
|
RequestParameters: {},
|
|
Integration: {
|
|
IntegrationHttpMethod: 'POST',
|
|
Type: 'AWS',
|
|
Uri: 'arn:aws:apigateway:aws_useast1:' +
|
|
'lambda:path/2015-03-31/functions/' +
|
|
'arn:aws:lambda:aws_useast1:12345678:first/invocations',
|
|
},
|
|
ResourceId: { Ref: 'ResourceApigEvent1' },
|
|
RestApiId: { Ref: 'RestApiApigEvent' },
|
|
},
|
|
},
|
|
GetMethodApigEvent1: {
|
|
Type: 'AWS::ApiGateway::Method',
|
|
Properties: {
|
|
AuthorizationType: 'NONE',
|
|
HttpMethod: 'GET',
|
|
MethodResponses: [
|
|
{
|
|
ResponseModels: {},
|
|
ResponseParameters: {},
|
|
StatusCode: '200',
|
|
},
|
|
],
|
|
RequestParameters: {},
|
|
Integration: {
|
|
IntegrationHttpMethod: 'GET',
|
|
Type: 'AWS',
|
|
Uri: 'arn:aws:apigateway:aws_useast1:' +
|
|
'lambda:path/2015-03-31/functions/' +
|
|
'arn:aws:lambda:aws_useast1:12345678:first/invocations',
|
|
},
|
|
ResourceId: { Ref: 'ResourceApigEvent1' },
|
|
RestApiId: { Ref: 'RestApiApigEvent' },
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
beforeEach(() => {
|
|
serverless = new Serverless();
|
|
serverless.init();
|
|
serverless.service.functions = {
|
|
first: {
|
|
events: {
|
|
aws: {
|
|
http_endpoints: {
|
|
post: 'users/create',
|
|
get: 'users/create/list',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
serverless.service.resources = {
|
|
aws: {
|
|
Resources: {},
|
|
},
|
|
};
|
|
serverless.service.environment = {
|
|
stages: {
|
|
dev: {
|
|
regions: {
|
|
aws_useast1: {
|
|
vars: {
|
|
iamRoleArnLambda:
|
|
'arn:aws:iam::12345678:role/service-dev-IamRoleLambda-FOO12345678',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
};
|
|
const options = {
|
|
stage: 'dev',
|
|
region: 'aws_useast1',
|
|
};
|
|
awsCompileApigEvents = new AwsCompileApigEvents(serverless, options);
|
|
awsCompileApigEvents.resourceLogicalIds = {
|
|
'users/create': 'ResourceApigEvent0',
|
|
'users/create/list': 'ResourceApigEvent1',
|
|
};
|
|
});
|
|
|
|
it('should create method resources', () => {
|
|
awsCompileApigEvents.compileMethods().then(() => {
|
|
expect(JSON.stringify(serviceResourcesAwsResourcesObjectMock.Resources))
|
|
.to.equal(JSON.stringify(awsCompileApigEvents.serverless.service.resources.aws.Resources));
|
|
});
|
|
});
|
|
});
|