@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
30 lines • 6.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lib_1 = require("../../../lib");
(0, lib_1.integTest)('cdk diff --method=change-set with nested stacks through full lifecycle', (0, lib_1.withDefaultFixture)(async (fixture) => {
const stackName = fixture.fullStackName('with-nested-stack');
// 1. Diff a new stack with nested stacks (CREATE change set)
const diffNew = await fixture.cdk(['diff', '--method=change-set', stackName]);
// Should show the nested stack resource in the root stack
expect(diffNew).toContain('AWS::CloudFormation::Stack');
// Should show the SNS topic from inside the nested stack
expect(diffNew).toContain('AWS::SNS::Topic');
// Should use changeset-based diff, not fall back to template diff
expect(diffNew).not.toContain('Could not create a change set');
expect(diffNew).not.toContain('falling back to template diff');
// Should show the changeset info message
expect(diffNew).toContain('read-only change set');
// 2. Deploy the stack
await fixture.cdkDeploy('with-nested-stack');
// 3. Diff after deploy with no changes — should report no differences
const diffNoChanges = await fixture.cdk(['diff', '--method=change-set', stackName]);
expect(diffNoChanges).toContain('There were no differences');
expect(diffNoChanges).not.toContain('Could not create a change set');
// 4. Destroy the stack
await fixture.cdkDestroy('with-nested-stack');
// 5. Diff again after destroy (CREATE change set for a new stack)
const diffAfterDestroy = await fixture.cdk(['diff', '--method=change-set', stackName]);
expect(diffAfterDestroy).toContain('AWS::CloudFormation::Stack');
expect(diffAfterDestroy).toContain('AWS::SNS::Topic');
}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtd2l0aC1uZXN0ZWQtc3RhY2tzLXRocm91Z2gtZnVsbC1saWZlY3ljbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtd2l0aC1uZXN0ZWQtc3RhY2tzLXRocm91Z2gtZnVsbC1saWZlY3ljbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0QsNkRBQTZEO0lBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlFLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEQseURBQXlEO0lBQ3pELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3QyxrRUFBa0U7SUFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMvRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQy9ELHlDQUF5QztJQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFbEQsc0JBQXNCO0lBQ3RCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTdDLHNFQUFzRTtJQUN0RSxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDN0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUVyRSx1QkFBdUI7SUFDdkIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFOUMsa0VBQWtFO0lBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDakUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpZmYgLS1tZXRob2Q9Y2hhbmdlLXNldCB3aXRoIG5lc3RlZCBzdGFja3MgdGhyb3VnaCBmdWxsIGxpZmVjeWNsZScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnd2l0aC1uZXN0ZWQtc3RhY2snKTtcblxuICAgIC8vIDEuIERpZmYgYSBuZXcgc3RhY2sgd2l0aCBuZXN0ZWQgc3RhY2tzIChDUkVBVEUgY2hhbmdlIHNldClcbiAgICBjb25zdCBkaWZmTmV3ID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgbmVzdGVkIHN0YWNrIHJlc291cmNlIGluIHRoZSByb290IHN0YWNrXG4gICAgZXhwZWN0KGRpZmZOZXcpLnRvQ29udGFpbignQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgU05TIHRvcGljIGZyb20gaW5zaWRlIHRoZSBuZXN0ZWQgc3RhY2tcbiAgICBleHBlY3QoZGlmZk5ldykudG9Db250YWluKCdBV1M6OlNOUzo6VG9waWMnKTtcbiAgICAvLyBTaG91bGQgdXNlIGNoYW5nZXNldC1iYXNlZCBkaWZmLCBub3QgZmFsbCBiYWNrIHRvIHRlbXBsYXRlIGRpZmZcbiAgICBleHBlY3QoZGlmZk5ldykubm90LnRvQ29udGFpbignQ291bGQgbm90IGNyZWF0ZSBhIGNoYW5nZSBzZXQnKTtcbiAgICBleHBlY3QoZGlmZk5ldykubm90LnRvQ29udGFpbignZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlIGRpZmYnKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgY2hhbmdlc2V0IGluZm8gbWVzc2FnZVxuICAgIGV4cGVjdChkaWZmTmV3KS50b0NvbnRhaW4oJ3JlYWQtb25seSBjaGFuZ2Ugc2V0Jyk7XG5cbiAgICAvLyAyLiBEZXBsb3kgdGhlIHN0YWNrXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3dpdGgtbmVzdGVkLXN0YWNrJyk7XG5cbiAgICAvLyAzLiBEaWZmIGFmdGVyIGRlcGxveSB3aXRoIG5vIGNoYW5nZXMg4oCUIHNob3VsZCByZXBvcnQgbm8gZGlmZmVyZW5jZXNcbiAgICBjb25zdCBkaWZmTm9DaGFuZ2VzID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcbiAgICBleHBlY3QoZGlmZk5vQ2hhbmdlcykudG9Db250YWluKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzJyk7XG4gICAgZXhwZWN0KGRpZmZOb0NoYW5nZXMpLm5vdC50b0NvbnRhaW4oJ0NvdWxkIG5vdCBjcmVhdGUgYSBjaGFuZ2Ugc2V0Jyk7XG5cbiAgICAvLyA0LiBEZXN0cm95IHRoZSBzdGFja1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnd2l0aC1uZXN0ZWQtc3RhY2snKTtcblxuICAgIC8vIDUuIERpZmYgYWdhaW4gYWZ0ZXIgZGVzdHJveSAoQ1JFQVRFIGNoYW5nZSBzZXQgZm9yIGEgbmV3IHN0YWNrKVxuICAgIGNvbnN0IGRpZmZBZnRlckRlc3Ryb3kgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2RpZmYnLCAnLS1tZXRob2Q9Y2hhbmdlLXNldCcsIHN0YWNrTmFtZV0pO1xuICAgIGV4cGVjdChkaWZmQWZ0ZXJEZXN0cm95KS50b0NvbnRhaW4oJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyk7XG4gICAgZXhwZWN0KGRpZmZBZnRlckRlc3Ryb3kpLnRvQ29udGFpbignQVdTOjpTTlM6OlRvcGljJyk7XG4gIH0pLFxuKTtcbiJdfQ==