UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

47 lines 8.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deploysSuccessfully = deploysSuccessfully; exports.fromStackCreatesDeployableApp = fromStackCreatesDeployableApp; const fs_1 = require("fs"); const path = require("path"); const client_cloudformation_1 = require("@aws-sdk/client-cloudformation"); const lib_1 = require("../../../lib"); async function deploysSuccessfully(fixture, language) { if (language === 'python') { await fixture.shell(['pip', 'install', '-r', 'requirements.txt']); } await fixture.cdkDeploy(fixture.stackNamePrefix, { neverRequireApproval: true, verbose: true, captureStderr: false }, true); const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fixture.stackNamePrefix, })); expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE'); } async function fromStackCreatesDeployableApp(fixture, language) { const migrateStackName = fixture.fullStackName('migrate-stack'); await fixture.aws.cloudFormation.send(new client_cloudformation_1.CreateStackCommand({ StackName: migrateStackName, TemplateBody: await fs_1.promises.readFile(path.join(__dirname, '..', '..', '..', 'resources', 'templates', 'sqs-template.json'), 'utf8'), })); let stackStatus = 'CREATE_IN_PROGRESS'; while (stackStatus === 'CREATE_IN_PROGRESS') { stackStatus = await (await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: migrateStackName }))).Stacks?.[0].StackStatus; await (0, lib_1.sleep)(1000); } await fixture.cdk(['migrate', '--language', language, '--stack-name', migrateStackName, '--from-stack'], { modEnv: { MIGRATE_INTEG_TEST: '1' }, neverRequireApproval: true, verbose: true, captureStderr: false, }); await fixture.shell(['cd', path.join(fixture.integTestDir, migrateStackName)]); await fixture.cdk(['deploy', migrateStackName], { neverRequireApproval: true, verbose: true, captureStderr: false, }); const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: migrateStackName, })); expect(response.Stacks?.[0].StackStatus).toEqual('UPDATE_COMPLETE'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0Y2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLGtEQWlCQztBQUVELHNFQXNDQztBQS9ERCwyQkFBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLDBFQUEyRjtBQUUzRixzQ0FBcUM7QUFFOUIsS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQW9CLEVBQUUsUUFBZ0I7SUFDOUUsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQ3JCLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUNuRSxJQUFJLENBQ0wsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxJQUFJLDZDQUFxQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsZUFBZTtLQUNuQyxDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVNLEtBQUssVUFBVSw2QkFBNkIsQ0FBQyxPQUFvQixFQUFFLFFBQWdCO0lBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDbkMsSUFBSSwwQ0FBa0IsQ0FBQztRQUNyQixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFlBQVksRUFBRSxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsRUFDckYsTUFBTSxDQUNQO0tBQ0YsQ0FBQyxDQUNILENBQUM7SUFFRixJQUFJLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUN2QyxPQUFPLFdBQVcsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVDLFdBQVcsR0FBRyxNQUFNLENBQ2xCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksNkNBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQ2xHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBWSxDQUFDO1FBQzNCLE1BQU0sSUFBQSxXQUFLLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsRUFBRTtRQUN2RyxNQUFNLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDbkMsb0JBQW9CLEVBQUUsSUFBSTtRQUMxQixPQUFPLEVBQUUsSUFBSTtRQUNiLGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7UUFDOUMsb0JBQW9CLEVBQUUsSUFBSTtRQUMxQixPQUFPLEVBQUUsSUFBSTtRQUNiLGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxJQUFJLDZDQUFxQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQyxDQUNILENBQUM7SUFFRixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDcmVhdGVTdGFja0NvbW1hbmQsIERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgdHlwZSB7IFRlc3RGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlcGxveXNTdWNjZXNzZnVsbHkoZml4dHVyZTogVGVzdEZpeHR1cmUsIGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgaWYgKGxhbmd1YWdlID09PSAncHl0aG9uJykge1xuICAgIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydwaXAnLCAnaW5zdGFsbCcsICctcicsICdyZXF1aXJlbWVudHMudHh0J10pO1xuICB9XG5cbiAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koXG4gICAgZml4dHVyZS5zdGFja05hbWVQcmVmaXgsXG4gICAgeyBuZXZlclJlcXVpcmVBcHByb3ZhbDogdHJ1ZSwgdmVyYm9zZTogdHJ1ZSwgY2FwdHVyZVN0ZGVycjogZmFsc2UgfSxcbiAgICB0cnVlLFxuICApO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICBTdGFja05hbWU6IGZpeHR1cmUuc3RhY2tOYW1lUHJlZml4LFxuICAgIH0pLFxuICApO1xuXG4gIGV4cGVjdChyZXNwb25zZS5TdGFja3M/LlswXS5TdGFja1N0YXR1cykudG9FcXVhbCgnQ1JFQVRFX0NPTVBMRVRFJyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmcm9tU3RhY2tDcmVhdGVzRGVwbG95YWJsZUFwcChmaXh0dXJlOiBUZXN0Rml4dHVyZSwgbGFuZ3VhZ2U6IHN0cmluZykge1xuICBjb25zdCBtaWdyYXRlU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdtaWdyYXRlLXN0YWNrJyk7XG4gIGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgbmV3IENyZWF0ZVN0YWNrQ29tbWFuZCh7XG4gICAgICBTdGFja05hbWU6IG1pZ3JhdGVTdGFja05hbWUsXG4gICAgICBUZW1wbGF0ZUJvZHk6IGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAncmVzb3VyY2VzJywgJ3RlbXBsYXRlcycsICdzcXMtdGVtcGxhdGUuanNvbicpLFxuICAgICAgICAndXRmOCcsXG4gICAgICApLFxuICAgIH0pLFxuICApO1xuXG4gIGxldCBzdGFja1N0YXR1cyA9ICdDUkVBVEVfSU5fUFJPR1JFU1MnO1xuICB3aGlsZSAoc3RhY2tTdGF0dXMgPT09ICdDUkVBVEVfSU5fUFJPR1JFU1MnKSB7XG4gICAgc3RhY2tTdGF0dXMgPSBhd2FpdCAoXG4gICAgICBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IG1pZ3JhdGVTdGFja05hbWUgfSkpXG4gICAgKS5TdGFja3M/LlswXS5TdGFja1N0YXR1cyE7XG4gICAgYXdhaXQgc2xlZXAoMTAwMCk7XG4gIH1cbiAgYXdhaXQgZml4dHVyZS5jZGsoWydtaWdyYXRlJywgJy0tbGFuZ3VhZ2UnLCBsYW5ndWFnZSwgJy0tc3RhY2stbmFtZScsIG1pZ3JhdGVTdGFja05hbWUsICctLWZyb20tc3RhY2snXSwge1xuICAgIG1vZEVudjogeyBNSUdSQVRFX0lOVEVHX1RFU1Q6ICcxJyB9LFxuICAgIG5ldmVyUmVxdWlyZUFwcHJvdmFsOiB0cnVlLFxuICAgIHZlcmJvc2U6IHRydWUsXG4gICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gIH0pO1xuICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnY2QnLCBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIG1pZ3JhdGVTdGFja05hbWUpXSk7XG4gIGF3YWl0IGZpeHR1cmUuY2RrKFsnZGVwbG95JywgbWlncmF0ZVN0YWNrTmFtZV0sIHtcbiAgICBuZXZlclJlcXVpcmVBcHByb3ZhbDogdHJ1ZSxcbiAgICB2ZXJib3NlOiB0cnVlLFxuICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgU3RhY2tOYW1lOiBtaWdyYXRlU3RhY2tOYW1lLFxuICAgIH0pLFxuICApO1xuXG4gIGV4cGVjdChyZXNwb25zZS5TdGFja3M/LlswXS5TdGFja1N0YXR1cykudG9FcXVhbCgnVVBEQVRFX0NPTVBMRVRFJyk7XG59XG4iXX0=