UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

53 lines 8.94 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']); } const stackArn = 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: stackArn, })); expect(response.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE'); await fixture.cdkDestroy(fixture.stackNamePrefix); } 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'), })); try { 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'); } finally { await fixture.cdkDestroy('migrate-stack'); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0Y2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLGtEQWtCQztBQUVELHNFQXlDQztBQW5FRCwyQkFBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLDBFQUEyRjtBQUUzRixzQ0FBcUM7QUFFOUIsS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQW9CLEVBQUUsUUFBZ0I7SUFDOUUsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQ3RDLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUNuRSxJQUFJLENBQ0wsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxJQUFJLDZDQUFxQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxRQUFRO0tBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUsNkJBQTZCLENBQUMsT0FBb0IsRUFBRSxRQUFnQjtJQUN4RixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ25DLElBQUksMENBQWtCLENBQUM7UUFDckIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixZQUFZLEVBQUUsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLEVBQ3JGLE1BQU0sQ0FDUDtLQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0YsSUFBSSxDQUFDO1FBQ0gsSUFBSSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7UUFDdkMsT0FBTyxXQUFXLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztZQUM1QyxXQUFXLEdBQUcsTUFBTSxDQUNsQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLDZDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUNsRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVksQ0FBQztZQUMzQixNQUFNLElBQUEsV0FBSyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7WUFDdkcsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1lBQ25DLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsT0FBTyxFQUFFLElBQUk7WUFDYixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzlDLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsT0FBTyxFQUFFLElBQUk7WUFDYixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsSUFBSSw2Q0FBcUIsQ0FBQztZQUN4QixTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FDSCxDQUFDO1FBRUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENyZWF0ZVN0YWNrQ29tbWFuZCwgRGVzY3JpYmVTdGFja3NDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgVGVzdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlOiBUZXN0Rml4dHVyZSwgbGFuZ3VhZ2U6IHN0cmluZykge1xuICBpZiAobGFuZ3VhZ2UgPT09ICdweXRob24nKSB7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ3BpcCcsICdpbnN0YWxsJywgJy1yJywgJ3JlcXVpcmVtZW50cy50eHQnXSk7XG4gIH1cblxuICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KFxuICAgIGZpeHR1cmUuc3RhY2tOYW1lUHJlZml4LFxuICAgIHsgbmV2ZXJSZXF1aXJlQXBwcm92YWw6IHRydWUsIHZlcmJvc2U6IHRydWUsIGNhcHR1cmVTdGRlcnI6IGZhbHNlIH0sXG4gICAgdHJ1ZSxcbiAgKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFja0FybixcbiAgICB9KSxcbiAgKTtcblxuICBleHBlY3QocmVzcG9uc2UuU3RhY2tzPy5bMF0uU3RhY2tTdGF0dXMpLnRvRXF1YWwoJ0NSRUFURV9DT01QTEVURScpO1xuICBhd2FpdCBmaXh0dXJlLmNka0Rlc3Ryb3koZml4dHVyZS5zdGFja05hbWVQcmVmaXgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZTogVGVzdEZpeHR1cmUsIGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgY29uc3QgbWlncmF0ZVN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnbWlncmF0ZS1zdGFjaycpO1xuICBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgIG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoe1xuICAgICAgU3RhY2tOYW1lOiBtaWdyYXRlU3RhY2tOYW1lLFxuICAgICAgVGVtcGxhdGVCb2R5OiBhd2FpdCBmcy5yZWFkRmlsZShcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3Jlc291cmNlcycsICd0ZW1wbGF0ZXMnLCAnc3FzLXRlbXBsYXRlLmpzb24nKSxcbiAgICAgICAgJ3V0ZjgnLFxuICAgICAgKSxcbiAgICB9KSxcbiAgKTtcbiAgdHJ5IHtcbiAgICBsZXQgc3RhY2tTdGF0dXMgPSAnQ1JFQVRFX0lOX1BST0dSRVNTJztcbiAgICB3aGlsZSAoc3RhY2tTdGF0dXMgPT09ICdDUkVBVEVfSU5fUFJPR1JFU1MnKSB7XG4gICAgICBzdGFja1N0YXR1cyA9IGF3YWl0IChcbiAgICAgICAgYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBtaWdyYXRlU3RhY2tOYW1lIH0pKVxuICAgICAgKS5TdGFja3M/LlswXS5TdGFja1N0YXR1cyE7XG4gICAgICBhd2FpdCBzbGVlcCgxMDAwKTtcbiAgICB9XG4gICAgYXdhaXQgZml4dHVyZS5jZGsoWydtaWdyYXRlJywgJy0tbGFuZ3VhZ2UnLCBsYW5ndWFnZSwgJy0tc3RhY2stbmFtZScsIG1pZ3JhdGVTdGFja05hbWUsICctLWZyb20tc3RhY2snXSwge1xuICAgICAgbW9kRW52OiB7IE1JR1JBVEVfSU5URUdfVEVTVDogJzEnIH0sXG4gICAgICBuZXZlclJlcXVpcmVBcHByb3ZhbDogdHJ1ZSxcbiAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnY2QnLCBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIG1pZ3JhdGVTdGFja05hbWUpXSk7XG4gICAgYXdhaXQgZml4dHVyZS5jZGsoWydkZXBsb3knLCBtaWdyYXRlU3RhY2tOYW1lXSwge1xuICAgICAgbmV2ZXJSZXF1aXJlQXBwcm92YWw6IHRydWUsXG4gICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgIFN0YWNrTmFtZTogbWlncmF0ZVN0YWNrTmFtZSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBleHBlY3QocmVzcG9uc2UuU3RhY2tzPy5bMF0uU3RhY2tTdGF0dXMpLnRvRXF1YWwoJ1VQREFURV9DT01QTEVURScpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnbWlncmF0ZS1zdGFjaycpO1xuICB9XG59XG4iXX0=