serverless/test/unit/lib/plugins/aws/info/display.test.js
2024-05-29 11:51:04 -04:00

130 lines
3.9 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',
])
})
})