@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
39 lines • 5.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
const lib_1 = require("../../../lib");
(0, lib_1.integTest)('cdk destroy prompts the user for confirmation', (0, lib_1.withDefaultFixture)(async (fixture) => {
const stackName = 'test-2';
const fullStackName = fixture.fullStackName(stackName);
fixture.log(`Deploying stack ${fullStackName}`);
await fixture.cdkDeploy(stackName);
fixture.log(`Destroying stack ${fullStackName} and declining prompt`);
const output = await fixture.cdkDestroy(stackName, {
force: false,
// Declining the confirmation aborts the command with a non-zero exit code.
allowErrExit: true,
interact: [
{ prompt: /Are you sure you want to delete/, input: 'no' },
],
modEnv: {
// disable coloring because it messes up prompt matching.
FORCE_COLOR: '0',
},
});
// the decline is reported softly, not as a crash
expect(output).toContain('Deletion cancelled');
// assert we didn't destroy the stack
const stack = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fullStackName }));
expect(stack.Stacks?.length ?? 0).toEqual(1);
fixture.log(`Destroying stack ${fullStackName} and accepting prompt`);
await fixture.cdkDestroy(stackName, {
force: false,
interact: [
{ prompt: /Are you sure you want to delete/, input: 'yes' },
],
});
// assert we did destroy the stack
await expect(fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fullStackName })))
.rejects.toThrow(/does not exist/);
}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlc3Ryb3ktaW50ZXJhY3RpdmUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlc3Ryb3ktaW50ZXJhY3RpdmUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQXVFO0FBQ3ZFLHNDQUE2RDtBQUU3RCxJQUFBLGVBQVMsRUFBQywrQ0FBK0MsRUFBRSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUM5RixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixhQUFhLHVCQUF1QixDQUFDLENBQUM7SUFDdEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtRQUNqRCxLQUFLLEVBQUUsS0FBSztRQUNaLDJFQUEyRTtRQUMzRSxZQUFZLEVBQUUsSUFBSTtRQUNsQixRQUFRLEVBQUU7WUFDUixFQUFFLE1BQU0sRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQzNEO1FBQ0QsTUFBTSxFQUFFO1lBQ04seURBQXlEO1lBQ3pELFdBQVcsRUFBRSxHQUFHO1NBQ2pCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsaURBQWlEO0lBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUvQyxxQ0FBcUM7SUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSw2Q0FBcUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixhQUFhLHVCQUF1QixDQUFDLENBQUM7SUFDdEUsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtRQUNsQyxLQUFLLEVBQUUsS0FBSztRQUNaLFFBQVEsRUFBRTtZQUNSLEVBQUUsTUFBTSxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7U0FDNUQ7S0FDRixDQUFDLENBQUM7SUFFSCxrQ0FBa0M7SUFDbEMsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksNkNBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ25HLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVTdGFja3NDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KCdjZGsgZGVzdHJveSBwcm9tcHRzIHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24nLCB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgY29uc3Qgc3RhY2tOYW1lID0gJ3Rlc3QtMic7XG4gIGNvbnN0IGZ1bGxTdGFja05hbWUgPSBmaXh0dXJlLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lKTtcblxuICBmaXh0dXJlLmxvZyhgRGVwbG95aW5nIHN0YWNrICR7ZnVsbFN0YWNrTmFtZX1gKTtcbiAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lKTtcblxuICBmaXh0dXJlLmxvZyhgRGVzdHJveWluZyBzdGFjayAke2Z1bGxTdGFja05hbWV9IGFuZCBkZWNsaW5pbmcgcHJvbXB0YCk7XG4gIGNvbnN0IG91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveShzdGFja05hbWUsIHtcbiAgICBmb3JjZTogZmFsc2UsXG4gICAgLy8gRGVjbGluaW5nIHRoZSBjb25maXJtYXRpb24gYWJvcnRzIHRoZSBjb21tYW5kIHdpdGggYSBub24temVybyBleGl0IGNvZGUuXG4gICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgIGludGVyYWN0OiBbXG4gICAgICB7IHByb21wdDogL0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUvLCBpbnB1dDogJ25vJyB9LFxuICAgIF0sXG4gICAgbW9kRW52OiB7XG4gICAgICAvLyBkaXNhYmxlIGNvbG9yaW5nIGJlY2F1c2UgaXQgbWVzc2VzIHVwIHByb21wdCBtYXRjaGluZy5cbiAgICAgIEZPUkNFX0NPTE9SOiAnMCcsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gdGhlIGRlY2xpbmUgaXMgcmVwb3J0ZWQgc29mdGx5LCBub3QgYXMgYSBjcmFzaFxuICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ0RlbGV0aW9uIGNhbmNlbGxlZCcpO1xuXG4gIC8vIGFzc2VydCB3ZSBkaWRuJ3QgZGVzdHJveSB0aGUgc3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IGZ1bGxTdGFja05hbWUgfSkpO1xuICBleHBlY3Qoc3RhY2suU3RhY2tzPy5sZW5ndGggPz8gMCkudG9FcXVhbCgxKTtcblxuICBmaXh0dXJlLmxvZyhgRGVzdHJveWluZyBzdGFjayAke2Z1bGxTdGFja05hbWV9IGFuZCBhY2NlcHRpbmcgcHJvbXB0YCk7XG4gIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveShzdGFja05hbWUsIHtcbiAgICBmb3JjZTogZmFsc2UsXG4gICAgaW50ZXJhY3Q6IFtcbiAgICAgIHsgcHJvbXB0OiAvQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZS8sIGlucHV0OiAneWVzJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIGFzc2VydCB3ZSBkaWQgZGVzdHJveSB0aGUgc3RhY2tcbiAgYXdhaXQgZXhwZWN0KGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQobmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7IFN0YWNrTmFtZTogZnVsbFN0YWNrTmFtZSB9KSkpXG4gICAgLnJlamVjdHMudG9UaHJvdygvZG9lcyBub3QgZXhpc3QvKTtcbn0pKTtcbiJdfQ==