UNPKG

@amazon-codecatalyst/blueprints.sam-serverless-application

Version:

This blueprint creates a project that leverages a serverless application model (SAM) to quickly create and deploy an API. You can choose Java, TypeScript, or Python as the programming language

66 lines 9.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const readmeContents_1 = require("./readmeContents"); const runtimeMappings_1 = require("./runtimeMappings"); describe('readme contents', () => { describe('happy case', () => { const runtimeMapping = runtimeMappings_1.runtimeMappings['Java 11 Gradle']; const params = { runtime: 'Java 11 Gradle', runtimeMapping, defaultReleaseBranch: 'test-release-branch', lambdas: [{ functionName: 'lambda1' }, { functionName: 'lambda2' }], environment: { name: 'test-env-name', environmentType: 'PRODUCTION', }, cloudFormationStackName: 'test-cfn-stack-name', workflowName: 'test-workflow-name', sourceRepositoryName: 'test-repo-name', }; const readmeContents = (0, readmeContents_1.generateReadmeContents)(params); it('incorporates runtime param', () => { expect(readmeContents).toContain('$ gradle test'); }); it('incorporates runtimeMapping param', () => { expect(readmeContents).toContain(`\`${runtimeMapping.srcCodePath}\` - Code for the AWS Lambda function`); }); it('incorporates defaultReleaseBranch param', () => { expect(readmeContents).toContain('The workflow is triggered by pushes to the `test-release-branch` branch of the source repository'); }); it('incorporates lambdas param', () => { expect(readmeContents).toContain('`lambda1, lambda2` - Source code'); }); it('incorporates environment param', () => { expect(readmeContents).toMatch('your project environment `test-env-name`'); }); it('incorporates cloudFormationStackName param', () => { expect(readmeContents).toContain('using the `test-cfn-stack-name` AWS Cloudformation stack'); }); it('incorporates workflowName param', () => { expect(readmeContents).toContain('using the workflow defined in `.codecatalyst/workflows/test-workflow-name.yaml`.'); }); it('incorporates sourceRepositoryName param', () => { expect(readmeContents).toContain('Source repository named `test-repo-name`'); }); }); describe('when no Lambda functions are passed', () => { const runtimeMapping = runtimeMappings_1.runtimeMappings['Java 11 Gradle']; const params = { runtime: 'Java 11 Gradle', runtimeMapping, lambdas: [], environment: { name: 'test-env-name', environmentType: 'PRODUCTION', }, cloudFormationStackName: 'test-cfn-stack-name', workflowName: 'test-workflow-name', sourceRepositoryName: 'test-repo-name', }; it('throws exception', () => { expect(() => (0, readmeContents_1.generateReadmeContents)(params)).toThrow('Readme expects'); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lQ29udGVudHMuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkbWVDb250ZW50cy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQTBEO0FBQzFELHVEQUFvRDtBQUVwRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQzFCLE1BQU0sY0FBYyxHQUFHLGlDQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsY0FBYztZQUNkLG9CQUFvQixFQUFFLHFCQUFxQjtZQUMzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNuRSxXQUFXLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLGVBQWUsRUFBRSxZQUFZO2FBQzlCO1lBQ0QsdUJBQXVCLEVBQUUscUJBQXFCO1lBQzlDLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsb0JBQW9CLEVBQUUsZ0JBQWdCO1NBQ3ZDLENBQUM7UUFFRixNQUFNLGNBQWMsR0FBRyxJQUFBLHVDQUFzQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRELEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7WUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxXQUFXLHVDQUF1QyxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1lBQ2pELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsa0dBQWtHLENBQUMsQ0FBQztRQUN2SSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtZQUN4QyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7WUFDekMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO1FBQ3ZILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtZQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxjQUFjLEdBQUcsaUNBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixjQUFjO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLGVBQWUsRUFBRSxZQUFZO2FBQzlCO1lBQ0QsdUJBQXVCLEVBQUUscUJBQXFCO1lBQzlDLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsb0JBQW9CLEVBQUUsZ0JBQWdCO1NBQ3ZDLENBQUM7UUFFRixFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHVDQUFzQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2VuZXJhdGVSZWFkbWVDb250ZW50cyB9IGZyb20gJy4vcmVhZG1lQ29udGVudHMnO1xuaW1wb3J0IHsgcnVudGltZU1hcHBpbmdzIH0gZnJvbSAnLi9ydW50aW1lTWFwcGluZ3MnO1xuXG5kZXNjcmliZSgncmVhZG1lIGNvbnRlbnRzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaGFwcHkgY2FzZScsICgpID0+IHtcbiAgICBjb25zdCBydW50aW1lTWFwcGluZyA9IHJ1bnRpbWVNYXBwaW5nc1snSmF2YSAxMSBHcmFkbGUnXTtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBydW50aW1lOiAnSmF2YSAxMSBHcmFkbGUnLFxuICAgICAgcnVudGltZU1hcHBpbmcsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ3Rlc3QtcmVsZWFzZS1icmFuY2gnLFxuICAgICAgbGFtYmRhczogW3sgZnVuY3Rpb25OYW1lOiAnbGFtYmRhMScgfSwgeyBmdW5jdGlvbk5hbWU6ICdsYW1iZGEyJyB9XSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIG5hbWU6ICd0ZXN0LWVudi1uYW1lJyxcbiAgICAgICAgZW52aXJvbm1lbnRUeXBlOiAnUFJPRFVDVElPTicsXG4gICAgICB9LFxuICAgICAgY2xvdWRGb3JtYXRpb25TdGFja05hbWU6ICd0ZXN0LWNmbi1zdGFjay1uYW1lJyxcbiAgICAgIHdvcmtmbG93TmFtZTogJ3Rlc3Qtd29ya2Zsb3ctbmFtZScsXG4gICAgICBzb3VyY2VSZXBvc2l0b3J5TmFtZTogJ3Rlc3QtcmVwby1uYW1lJyxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVhZG1lQ29udGVudHMgPSBnZW5lcmF0ZVJlYWRtZUNvbnRlbnRzKHBhcmFtcyk7XG5cbiAgICBpdCgnaW5jb3Jwb3JhdGVzIHJ1bnRpbWUgcGFyYW0nLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVhZG1lQ29udGVudHMpLnRvQ29udGFpbignJCBncmFkbGUgdGVzdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luY29ycG9yYXRlcyBydW50aW1lTWFwcGluZyBwYXJhbScsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZWFkbWVDb250ZW50cykudG9Db250YWluKGBcXGAke3J1bnRpbWVNYXBwaW5nLnNyY0NvZGVQYXRofVxcYCAtIENvZGUgZm9yIHRoZSBBV1MgTGFtYmRhIGZ1bmN0aW9uYCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5jb3Jwb3JhdGVzIGRlZmF1bHRSZWxlYXNlQnJhbmNoIHBhcmFtJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlYWRtZUNvbnRlbnRzKS50b0NvbnRhaW4oJ1RoZSB3b3JrZmxvdyBpcyB0cmlnZ2VyZWQgYnkgcHVzaGVzIHRvIHRoZSBgdGVzdC1yZWxlYXNlLWJyYW5jaGAgYnJhbmNoIG9mIHRoZSBzb3VyY2UgcmVwb3NpdG9yeScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luY29ycG9yYXRlcyBsYW1iZGFzIHBhcmFtJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlYWRtZUNvbnRlbnRzKS50b0NvbnRhaW4oJ2BsYW1iZGExLCBsYW1iZGEyYCAtIFNvdXJjZSBjb2RlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5jb3Jwb3JhdGVzIGVudmlyb25tZW50IHBhcmFtJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlYWRtZUNvbnRlbnRzKS50b01hdGNoKCd5b3VyIHByb2plY3QgZW52aXJvbm1lbnQgYHRlc3QtZW52LW5hbWVgJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5jb3Jwb3JhdGVzIGNsb3VkRm9ybWF0aW9uU3RhY2tOYW1lIHBhcmFtJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlYWRtZUNvbnRlbnRzKS50b0NvbnRhaW4oJ3VzaW5nIHRoZSBgdGVzdC1jZm4tc3RhY2stbmFtZWAgQVdTIENsb3VkZm9ybWF0aW9uIHN0YWNrJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5jb3Jwb3JhdGVzIHdvcmtmbG93TmFtZSBwYXJhbScsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZWFkbWVDb250ZW50cykudG9Db250YWluKCd1c2luZyB0aGUgd29ya2Zsb3cgZGVmaW5lZCBpbiBgLmNvZGVjYXRhbHlzdC93b3JrZmxvd3MvdGVzdC13b3JrZmxvdy1uYW1lLnlhbWxgLicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luY29ycG9yYXRlcyBzb3VyY2VSZXBvc2l0b3J5TmFtZSBwYXJhbScsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZWFkbWVDb250ZW50cykudG9Db250YWluKCdTb3VyY2UgcmVwb3NpdG9yeSBuYW1lZCBgdGVzdC1yZXBvLW5hbWVgJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd3aGVuIG5vIExhbWJkYSBmdW5jdGlvbnMgYXJlIHBhc3NlZCcsICgpID0+IHtcbiAgICBjb25zdCBydW50aW1lTWFwcGluZyA9IHJ1bnRpbWVNYXBwaW5nc1snSmF2YSAxMSBHcmFkbGUnXTtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBydW50aW1lOiAnSmF2YSAxMSBHcmFkbGUnLFxuICAgICAgcnVudGltZU1hcHBpbmcsXG4gICAgICBsYW1iZGFzOiBbXSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIG5hbWU6ICd0ZXN0LWVudi1uYW1lJyxcbiAgICAgICAgZW52aXJvbm1lbnRUeXBlOiAnUFJPRFVDVElPTicsXG4gICAgICB9LFxuICAgICAgY2xvdWRGb3JtYXRpb25TdGFja05hbWU6ICd0ZXN0LWNmbi1zdGFjay1uYW1lJyxcbiAgICAgIHdvcmtmbG93TmFtZTogJ3Rlc3Qtd29ya2Zsb3ctbmFtZScsXG4gICAgICBzb3VyY2VSZXBvc2l0b3J5TmFtZTogJ3Rlc3QtcmVwby1uYW1lJyxcbiAgICB9O1xuXG4gICAgaXQoJ3Rocm93cyBleGNlcHRpb24nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gZ2VuZXJhdGVSZWFkbWVDb250ZW50cyhwYXJhbXMpKS50b1Rocm93KCdSZWFkbWUgZXhwZWN0cycpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19