serverless/test/unit/lib/plugins/aws/info/display.test.js
2022-04-06 23:13:37 +02:00

120 lines
3.7 KiB
JavaScript

'use strict';
const expect = require('chai').expect;
const runServerless = require('../../../../../utils/run-serverless');
describe('test/unit/lib/plugins/aws/info/display.test.js', () => {
let serverless;
let serviceName;
before(async () => {
({
serverless,
fixtureData: {
serviceConfig: { service: serviceName },
},
} = await runServerless({
fixture: 'api-gateway',
command: 'info',
awsRequestStubMap: {
APIGateway: {
getApiKey: {
value: 'test-key-value',
name: 'test-key-name',
},
},
CloudFormation: {
describeStacks: {
Stacks: [
{
Outputs: [
{
OutputKey: 'ServiceEndpoint',
OutputValue: 'https://xxxxx.execute-api.us-east-1.amazonaws.com/dev',
Description: 'URL of the service endpoint',
ExportName: 'sls-test-api-gw',
},
{
OutputKey: 'ServerlessDeploymentBucketName',
OutputValue: 'test-api-gw-dev-serverlessdeploymentbucket-xxxxx',
ExportName: 'sls-test-api-gw-ServerlessDeploymentBucketName',
},
{
OutputKey: 'LayerLambdaLayerQualifiedArn',
OutputValue: 'arn:aws:lambda:us-east-1:00000000:layer:layer:1',
},
{
OutputKey: 'WithUrlLambdaFunctionUrl',
OutputValue: 'https://sub.lambda.com',
},
],
},
],
},
describeStackResources: {
StackResources: [
{
PhysicalResourceId: 'test',
ResourceType: 'AWS::ApiGateway::ApiKey',
},
],
},
listStackResources: {},
},
},
configExt: {
provider: {
apiGateway: {
apiKeys: [
{ name: 'full-key', value: 'full-key-asdf-asdf-asdf-adfafdadfadfadfadfafafdafadf' },
'no-value-key',
{ value: 'no-name-key-asdf-asdf-asdf-adfafdadfadfadfadfafafdafadf' },
],
},
},
functions: {
withUrl: {
handler: 'index.handler',
url: true,
},
},
layers: {
layer: {
path: 'layer',
},
},
},
}));
});
it('should register api gateway api keys section', () => {
expect(serverless.serviceOutputs.get('api keys')).to.deep.equal([
'test-key-name: test-key-value',
]);
});
it('should register endpoints section', () => {
expect(serverless.serviceOutputs.get('endpoints')).to.deep.equal([
'GET - https://xxxxx.execute-api.us-east-1.amazonaws.com/dev',
'POST - https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/minimal-1',
'GET - https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/foo',
'POST - https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/some-post',
'GET - https://xxxxx.execute-api.us-east-1.amazonaws.com/dev/bar/{marko}',
'withUrl: https://sub.lambda.com',
]);
});
it('should register functions section', () => {
expect(serverless.serviceOutputs.get('functions')).to.deep.equal([
`minimal: ${serviceName}-dev-minimal`,
`foo: ${serviceName}-dev-foo`,
`other: ${serviceName}-dev-other`,
`withUrl: ${serviceName}-dev-withUrl`,
]);
});
it('should register layers section', () => {
expect(serverless.serviceOutputs.get('layers')).to.deep.equal([
'layer: arn:aws:lambda:us-east-1:00000000:layer:layer:1',
]);
});
});