@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
JavaScript
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
;