UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

36 lines 6.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_cloudformation_1 = require("@aws-sdk/client-cloudformation"); const lib_1 = require("../../../lib"); (0, lib_1.integTest)('two-step deploy: prepare then execute change set', (0, lib_1.withDefaultFixture)(async (fixture) => { const changeSetName = `review-${fixture.stackNamePrefix}`; const stackName = 'test-2'; const fullStackName = fixture.fullStackName(stackName); // Step 1: Create the change set without executing it await fixture.cdkDeploy(stackName, { options: ['--method=prepare-change-set', '--change-set-name', changeSetName], captureStderr: false, }); // Verify the stack is in REVIEW_IN_PROGRESS const describeResponse = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fullStackName })); expect(describeResponse.Stacks?.[0].StackStatus).toEqual('REVIEW_IN_PROGRESS'); // Verify the change set exists and is ready const changeSetResponse = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeChangeSetCommand({ StackName: fullStackName, ChangeSetName: changeSetName, })); expect(changeSetResponse.Status).toEqual('CREATE_COMPLETE'); // Step 2: Execute the change set await fixture.cdk([ 'deploy', '--require-approval=never', '--method=execute-change-set', '--change-set-name', changeSetName, '--progress', 'events', fullStackName, ]); // Verify the stack is now deployed const finalResponse = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fullStackName })); expect(finalResponse.Stacks?.[0].StackStatus).toEqual('CREATE_COMPLETE'); })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR3by1zdGVwLWRlcGxveS1wcmVwYXJlLXRoZW4tZXhlY3V0ZS1jaGFuZ2Utc2V0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay10d28tc3RlcC1kZXBsb3ktcHJlcGFyZS10aGVuLWV4ZWN1dGUtY2hhbmdlLXNldC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBaUc7QUFDakcsc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUNQLGtEQUFrRCxFQUNsRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLGFBQWEsR0FBRyxVQUFVLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCxxREFBcUQ7SUFDckQsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtRQUNqQyxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7UUFDNUUsYUFBYSxFQUFFLEtBQUs7S0FDckIsQ0FBQyxDQUFDO0lBRUgsNENBQTRDO0lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQzVELElBQUksNkNBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FDeEQsQ0FBQztJQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUvRSw0Q0FBNEM7SUFDNUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0QsSUFBSSxnREFBd0IsQ0FBQztRQUMzQixTQUFTLEVBQUUsYUFBYTtRQUN4QixhQUFhLEVBQUUsYUFBYTtLQUM3QixDQUFDLENBQ0gsQ0FBQztJQUNGLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1RCxpQ0FBaUM7SUFDakMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ2hCLFFBQVE7UUFDUiwwQkFBMEI7UUFDMUIsNkJBQTZCO1FBQzdCLG1CQUFtQixFQUFFLGFBQWE7UUFDbEMsWUFBWSxFQUFFLFFBQVE7UUFDdEIsYUFBYTtLQUNkLENBQUMsQ0FBQztJQUVILG1DQUFtQztJQUNuQyxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDekQsSUFBSSw2Q0FBcUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUN4RCxDQUFDO0lBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kLCBEZXNjcmliZVN0YWNrc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICd0d28tc3RlcCBkZXBsb3k6IHByZXBhcmUgdGhlbiBleGVjdXRlIGNoYW5nZSBzZXQnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBjaGFuZ2VTZXROYW1lID0gYHJldmlldy0ke2ZpeHR1cmUuc3RhY2tOYW1lUHJlZml4fWA7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ3Rlc3QtMic7XG4gICAgY29uc3QgZnVsbFN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpO1xuXG4gICAgLy8gU3RlcCAxOiBDcmVhdGUgdGhlIGNoYW5nZSBzZXQgd2l0aG91dCBleGVjdXRpbmcgaXRcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveShzdGFja05hbWUsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1tZXRob2Q9cHJlcGFyZS1jaGFuZ2Utc2V0JywgJy0tY2hhbmdlLXNldC1uYW1lJywgY2hhbmdlU2V0TmFtZV0sXG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIFZlcmlmeSB0aGUgc3RhY2sgaXMgaW4gUkVWSUVXX0lOX1BST0dSRVNTXG4gICAgY29uc3QgZGVzY3JpYmVSZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lIH0pLFxuICAgICk7XG4gICAgZXhwZWN0KGRlc2NyaWJlUmVzcG9uc2UuU3RhY2tzPy5bMF0uU3RhY2tTdGF0dXMpLnRvRXF1YWwoJ1JFVklFV19JTl9QUk9HUkVTUycpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBjaGFuZ2Ugc2V0IGV4aXN0cyBhbmQgaXMgcmVhZHlcbiAgICBjb25zdCBjaGFuZ2VTZXRSZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lLFxuICAgICAgICBDaGFuZ2VTZXROYW1lOiBjaGFuZ2VTZXROYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgICBleHBlY3QoY2hhbmdlU2V0UmVzcG9uc2UuU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcblxuICAgIC8vIFN0ZXAgMjogRXhlY3V0ZSB0aGUgY2hhbmdlIHNldFxuICAgIGF3YWl0IGZpeHR1cmUuY2RrKFtcbiAgICAgICdkZXBsb3knLFxuICAgICAgJy0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlcicsXG4gICAgICAnLS1tZXRob2Q9ZXhlY3V0ZS1jaGFuZ2Utc2V0JyxcbiAgICAgICctLWNoYW5nZS1zZXQtbmFtZScsIGNoYW5nZVNldE5hbWUsXG4gICAgICAnLS1wcm9ncmVzcycsICdldmVudHMnLFxuICAgICAgZnVsbFN0YWNrTmFtZSxcbiAgICBdKTtcblxuICAgIC8vIFZlcmlmeSB0aGUgc3RhY2sgaXMgbm93IGRlcGxveWVkXG4gICAgY29uc3QgZmluYWxSZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lIH0pLFxuICAgICk7XG4gICAgZXhwZWN0KGZpbmFsUmVzcG9uc2UuU3RhY2tzPy5bMF0uU3RhY2tTdGF0dXMpLnRvRXF1YWwoJ0NSRUFURV9DT01QTEVURScpO1xuICB9KSxcbik7XG4iXX0=