@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
55 lines • 9.06 kB
JavaScript
;
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) {
var _a;
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((_a = response.Stacks) === null || _a === void 0 ? void 0 : _a[0].StackStatus).toEqual('CREATE_COMPLETE');
await fixture.cdkDestroy(fixture.stackNamePrefix);
}
async function fromStackCreatesDeployableApp(fixture, language) {
var _a, _b;
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 ((_a = (await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: migrateStackName }))).Stacks) === null || _a === void 0 ? void 0 : _a[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((_b = response.Stacks) === null || _b === void 0 ? void 0 : _b[0].StackStatus).toEqual('UPDATE_COMPLETE');
}
finally {
await fixture.cdkDestroy('migrate-stack');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0Y2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGtEQWtCQztBQUVELHNFQTJDQztBQXBFRCwyQkFBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLDBFQUEyRjtBQUMzRixzQ0FBa0Q7QUFFM0MsS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQW9CLEVBQUUsUUFBZ0I7O0lBQzlFLElBQUksUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUN0QyxPQUFPLENBQUMsZUFBZSxFQUN2QixFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFDbkUsSUFBSSxDQUNMLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsSUFBSSw2Q0FBcUIsQ0FBQztRQUN4QixTQUFTLEVBQUUsUUFBUTtLQUNwQixDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUsNkJBQTZCLENBQUMsT0FBb0IsRUFBRSxRQUFnQjs7SUFFeEYsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNuQyxJQUFJLDBDQUFrQixDQUFDO1FBQ3JCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsWUFBWSxFQUFFLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxFQUNyRixNQUFNLENBQ1A7S0FDRixDQUFDLENBQ0gsQ0FBQztJQUNGLElBQUksQ0FBQztRQUNILElBQUksV0FBVyxHQUFHLG9CQUFvQixDQUFDO1FBQ3ZDLE9BQU8sV0FBVyxLQUFLLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsV0FBVyxHQUFHLE1BQU0sQ0FBQSxNQUFBLENBQ2xCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksNkNBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQ2xHLENBQUMsTUFBTSwwQ0FBRyxDQUFDLEVBQUUsV0FBWSxDQUFBLENBQUM7WUFDM0IsTUFBTSxJQUFBLFdBQUssRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxFQUFFO1lBQ3ZHLE1BQU0sRUFBRSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtZQUNuQyxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUM5QyxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BELElBQUksNkNBQXFCLENBQUM7WUFDeEIsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQ0gsQ0FBQztRQUVGLE1BQU0sQ0FBQyxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0FBRUgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENyZWF0ZVN0YWNrQ29tbWFuZCwgRGVzY3JpYmVTdGFja3NDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvblwiO1xuaW1wb3J0IHsgc2xlZXAsIFRlc3RGaXh0dXJlIH0gZnJvbSBcIi4uLy4uLy4uL2xpYlwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVwbG95c1N1Y2Nlc3NmdWxseShmaXh0dXJlOiBUZXN0Rml4dHVyZSwgbGFuZ3VhZ2U6IHN0cmluZykge1xuICBpZiAobGFuZ3VhZ2UgPT09ICdweXRob24nKSB7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ3BpcCcsICdpbnN0YWxsJywgJy1yJywgJ3JlcXVpcmVtZW50cy50eHQnXSk7XG4gIH1cblxuICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KFxuICAgIGZpeHR1cmUuc3RhY2tOYW1lUHJlZml4LFxuICAgIHsgbmV2ZXJSZXF1aXJlQXBwcm92YWw6IHRydWUsIHZlcmJvc2U6IHRydWUsIGNhcHR1cmVTdGRlcnI6IGZhbHNlIH0sXG4gICAgdHJ1ZSxcbiAgKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFja0FybixcbiAgICB9KSxcbiAgKTtcblxuICBleHBlY3QocmVzcG9uc2UuU3RhY2tzPy5bMF0uU3RhY2tTdGF0dXMpLnRvRXF1YWwoJ0NSRUFURV9DT01QTEVURScpO1xuICBhd2FpdCBmaXh0dXJlLmNka0Rlc3Ryb3koZml4dHVyZS5zdGFja05hbWVQcmVmaXgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZnJvbVN0YWNrQ3JlYXRlc0RlcGxveWFibGVBcHAoZml4dHVyZTogVGVzdEZpeHR1cmUsIGxhbmd1YWdlOiBzdHJpbmcpIHtcblxuICBjb25zdCBtaWdyYXRlU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdtaWdyYXRlLXN0YWNrJyk7XG4gIGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgbmV3IENyZWF0ZVN0YWNrQ29tbWFuZCh7XG4gICAgICBTdGFja05hbWU6IG1pZ3JhdGVTdGFja05hbWUsXG4gICAgICBUZW1wbGF0ZUJvZHk6IGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAncmVzb3VyY2VzJywgJ3RlbXBsYXRlcycsICdzcXMtdGVtcGxhdGUuanNvbicpLFxuICAgICAgICAndXRmOCcsXG4gICAgICApLFxuICAgIH0pLFxuICApO1xuICB0cnkge1xuICAgIGxldCBzdGFja1N0YXR1cyA9ICdDUkVBVEVfSU5fUFJPR1JFU1MnO1xuICAgIHdoaWxlIChzdGFja1N0YXR1cyA9PT0gJ0NSRUFURV9JTl9QUk9HUkVTUycpIHtcbiAgICAgIHN0YWNrU3RhdHVzID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IG1pZ3JhdGVTdGFja05hbWUgfSkpXG4gICAgICApLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzITtcbiAgICAgIGF3YWl0IHNsZWVwKDEwMDApO1xuICAgIH1cbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ21pZ3JhdGUnLCAnLS1sYW5ndWFnZScsIGxhbmd1YWdlLCAnLS1zdGFjay1uYW1lJywgbWlncmF0ZVN0YWNrTmFtZSwgJy0tZnJvbS1zdGFjayddLCB7XG4gICAgICBtb2RFbnY6IHsgTUlHUkFURV9JTlRFR19URVNUOiAnMScgfSxcbiAgICAgIG5ldmVyUmVxdWlyZUFwcHJvdmFsOiB0cnVlLFxuICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgIH0pO1xuICAgIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydjZCcsIHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgbWlncmF0ZVN0YWNrTmFtZSldKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2RlcGxveScsIG1pZ3JhdGVTdGFja05hbWVdLCB7XG4gICAgICBuZXZlclJlcXVpcmVBcHByb3ZhbDogdHJ1ZSxcbiAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBtaWdyYXRlU3RhY2tOYW1lLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGV4cGVjdChyZXNwb25zZS5TdGFja3M/LlswXS5TdGFja1N0YXR1cykudG9FcXVhbCgnVVBEQVRFX0NPTVBMRVRFJyk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXN0cm95KCdtaWdyYXRlLXN0YWNrJyk7XG4gIH1cblxufSJdfQ==