@aws-cdk-testing/cli-integ 3.28.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/lib/assertions.d.ts +14 -0
- package/lib/assertions.js +29 -0
- package/lib/shell.d.ts +6 -0
- package/lib/shell.js +2 -2
- package/lib/with-sam.js +3 -8
- package/npm-shrinkwrap.json +110 -179
- package/package.json +2 -3
- package/resources/cdk-apps/guard-hook-app/app.js +99 -0
- package/resources/cdk-apps/guard-hook-app/cdk.json +4 -0
- package/resources/cdk-apps/nested-stack-with-iam/app.js +38 -0
- package/resources/cdk-apps/nested-stack-with-iam/cdk.json +7 -0
- package/resources/cdk-apps/tty-app/app.js +29 -0
- package/resources/cdk-apps/tty-app/cdk.json +4 -0
- package/tests/cli-integ-tests/deploy/cdk-deploy-guard-hook-failure-displays-annotations.integtest.js +19 -0
- package/tests/cli-integ-tests/deploy/cdk-deploy-skips-unnecessary-updates-for-nested-stacks.integtest.js +36 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---method-change-set-can-be-run-twice-on-a-new-stack.integtest.js +13 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---method-change-set-with-doubly-nested-stacks.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---method-change-set-with-doubly-nested-stacks.integtest.js +16 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---method-change-set-with-nested-stacks-through-full-lifecycle.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---method-change-set-with-nested-stacks-through-full-lifecycle.integtest.js +30 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---security-only--method-change-set-detects-security-changes-in-nested-stacks.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---security-only--method-change-set-detects-security-changes-in-nested-stacks.integtest.js +15 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---security-only-detects-security-changes-in-nested-stacks.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/diff/cdk-cdk-diff---security-only-detects-security-changes-in-nested-stacks.integtest.js +15 -0
- package/tests/cli-integ-tests/output/cdk-apps-must-have-terminal.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/output/cdk-apps-must-have-terminal.integtest.js +11 -0
- package/tests/cli-integ-tests/output/cdk-ci-output-to-stderr.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/output/cdk-ci-true-output-to-stdout.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-idempotent-and-force.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-idempotent-and-force.integtest.js +18 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-then-deploy.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-then-deploy.integtest.js +17 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-without-deploying.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-without-deploying.integtest.js +15 -0
- package/tests/telemetry-integ-tests/cdk-synth-telemetry.integtest.js +4 -1
- package/tests/cli-integ-tests/deploy/cdk-fast-deploy.integtest.js +0 -33
- /package/tests/cli-integ-tests/{ci-output/cdk-ci-output-to-stderr.integtest.d.ts → deploy/cdk-deploy-guard-hook-failure-displays-annotations.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{ci-output/cdk-ci-true-output-to-stdout.integtest.d.ts → deploy/cdk-deploy-skips-unnecessary-updates-for-nested-stacks.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{deploy/cdk-fast-deploy.integtest.d.ts → diff/cdk-cdk-diff---method-change-set-can-be-run-twice-on-a-new-stack.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{ci-output → output}/cdk-ci-output-to-stderr.integtest.js +0 -0
- /package/tests/cli-integ-tests/{ci-output → output}/cdk-ci-true-output-to-stdout.integtest.js +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../../lib");
|
|
5
|
+
(0, lib_1.integTest)('deploy skips unnecessary updates for nested stacks', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
6
|
+
// Deploy a stack with nested stacks. With IncludeNestedStacks, CloudFormation
|
|
7
|
+
// can accurately detect whether nested stacks have actual changes, rather than
|
|
8
|
+
// always reporting them as needing an update.
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('with-nested-stack', { captureStderr: false });
|
|
10
|
+
const changeSet1 = await getLatestChangeSet();
|
|
11
|
+
// Deploy the same stack again, there should be no new change set created
|
|
12
|
+
await fixture.cdkDeploy('with-nested-stack');
|
|
13
|
+
const changeSet2 = await getLatestChangeSet();
|
|
14
|
+
expect(changeSet2.ChangeSetId).toEqual(changeSet1.ChangeSetId);
|
|
15
|
+
// Deploy the stack again with --force. CloudFormation creates a changeset but
|
|
16
|
+
// accurately reports no changes (including in nested stacks), so the changeset
|
|
17
|
+
// is not executed and the stack's ChangeSetId remains the same.
|
|
18
|
+
const forceOutput = await fixture.cdk(fixture.cdkDeployCommandLine('with-nested-stack', { options: ['--force'] }));
|
|
19
|
+
expect(forceOutput).toContain('CloudFormation reported that the deployment would not make any changes');
|
|
20
|
+
const changeSet3 = await getLatestChangeSet();
|
|
21
|
+
expect(changeSet3.ChangeSetId).toEqual(changeSet2.ChangeSetId);
|
|
22
|
+
// Deploy the stack again with tags, expected to create a new changeset
|
|
23
|
+
// even though the resources didn't change.
|
|
24
|
+
await fixture.cdkDeploy('with-nested-stack', { options: ['--tags', 'key=value'] });
|
|
25
|
+
const changeSet4 = await getLatestChangeSet();
|
|
26
|
+
expect(changeSet4.ChangeSetId).not.toEqual(changeSet3.ChangeSetId);
|
|
27
|
+
async function getLatestChangeSet() {
|
|
28
|
+
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: stackArn }));
|
|
29
|
+
if (!response.Stacks?.[0]) {
|
|
30
|
+
throw new Error('Did not get a ChangeSet at all');
|
|
31
|
+
}
|
|
32
|
+
fixture.log(`Found Change Set ${response.Stacks?.[0].ChangeSetId}`);
|
|
33
|
+
return response.Stacks?.[0];
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1za2lwcy11bm5lY2Vzc2FyeS11cGRhdGVzLWZvci1uZXN0ZWQtc3RhY2tzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktc2tpcHMtdW5uZWNlc3NhcnktdXBkYXRlcy1mb3ItbmVzdGVkLXN0YWNrcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUNQLG9EQUFvRCxFQUNwRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyw4RUFBOEU7SUFDOUUsK0VBQStFO0lBQy9FLDhDQUE4QztJQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4RixNQUFNLFVBQVUsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7SUFFOUMseUVBQXlFO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztJQUM5QyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFL0QsOEVBQThFO0lBQzlFLCtFQUErRTtJQUMvRSxnRUFBZ0U7SUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNuQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQzVFLENBQUM7SUFDRixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7SUFDeEcsTUFBTSxVQUFVLEdBQUcsTUFBTSxrQkFBa0IsRUFBRSxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvRCx1RUFBdUU7SUFDdkUsMkNBQTJDO0lBQzNDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsTUFBTSxVQUFVLEdBQUcsTUFBTSxrQkFBa0IsRUFBRSxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFbkUsS0FBSyxVQUFVLGtCQUFrQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLDZDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2RlcGxveSBza2lwcyB1bm5lY2Vzc2FyeSB1cGRhdGVzIGZvciBuZXN0ZWQgc3RhY2tzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRGVwbG95IGEgc3RhY2sgd2l0aCBuZXN0ZWQgc3RhY2tzLiBXaXRoIEluY2x1ZGVOZXN0ZWRTdGFja3MsIENsb3VkRm9ybWF0aW9uXG4gICAgLy8gY2FuIGFjY3VyYXRlbHkgZGV0ZWN0IHdoZXRoZXIgbmVzdGVkIHN0YWNrcyBoYXZlIGFjdHVhbCBjaGFuZ2VzLCByYXRoZXIgdGhhblxuICAgIC8vIGFsd2F5cyByZXBvcnRpbmcgdGhlbSBhcyBuZWVkaW5nIGFuIHVwZGF0ZS5cbiAgICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCd3aXRoLW5lc3RlZC1zdGFjaycsIHsgY2FwdHVyZVN0ZGVycjogZmFsc2UgfSk7XG4gICAgY29uc3QgY2hhbmdlU2V0MSA9IGF3YWl0IGdldExhdGVzdENoYW5nZVNldCgpO1xuXG4gICAgLy8gRGVwbG95IHRoZSBzYW1lIHN0YWNrIGFnYWluLCB0aGVyZSBzaG91bGQgYmUgbm8gbmV3IGNoYW5nZSBzZXQgY3JlYXRlZFxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCd3aXRoLW5lc3RlZC1zdGFjaycpO1xuICAgIGNvbnN0IGNoYW5nZVNldDIgPSBhd2FpdCBnZXRMYXRlc3RDaGFuZ2VTZXQoKTtcbiAgICBleHBlY3QoY2hhbmdlU2V0Mi5DaGFuZ2VTZXRJZCkudG9FcXVhbChjaGFuZ2VTZXQxLkNoYW5nZVNldElkKTtcblxuICAgIC8vIERlcGxveSB0aGUgc3RhY2sgYWdhaW4gd2l0aCAtLWZvcmNlLiBDbG91ZEZvcm1hdGlvbiBjcmVhdGVzIGEgY2hhbmdlc2V0IGJ1dFxuICAgIC8vIGFjY3VyYXRlbHkgcmVwb3J0cyBubyBjaGFuZ2VzIChpbmNsdWRpbmcgaW4gbmVzdGVkIHN0YWNrcyksIHNvIHRoZSBjaGFuZ2VzZXRcbiAgICAvLyBpcyBub3QgZXhlY3V0ZWQgYW5kIHRoZSBzdGFjaydzIENoYW5nZVNldElkIHJlbWFpbnMgdGhlIHNhbWUuXG4gICAgY29uc3QgZm9yY2VPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhcbiAgICAgIGZpeHR1cmUuY2RrRGVwbG95Q29tbWFuZExpbmUoJ3dpdGgtbmVzdGVkLXN0YWNrJywgeyBvcHRpb25zOiBbJy0tZm9yY2UnXSB9KSxcbiAgICApO1xuICAgIGV4cGVjdChmb3JjZU91dHB1dCkudG9Db250YWluKCdDbG91ZEZvcm1hdGlvbiByZXBvcnRlZCB0aGF0IHRoZSBkZXBsb3ltZW50IHdvdWxkIG5vdCBtYWtlIGFueSBjaGFuZ2VzJyk7XG4gICAgY29uc3QgY2hhbmdlU2V0MyA9IGF3YWl0IGdldExhdGVzdENoYW5nZVNldCgpO1xuICAgIGV4cGVjdChjaGFuZ2VTZXQzLkNoYW5nZVNldElkKS50b0VxdWFsKGNoYW5nZVNldDIuQ2hhbmdlU2V0SWQpO1xuXG4gICAgLy8gRGVwbG95IHRoZSBzdGFjayBhZ2FpbiB3aXRoIHRhZ3MsIGV4cGVjdGVkIHRvIGNyZWF0ZSBhIG5ldyBjaGFuZ2VzZXRcbiAgICAvLyBldmVuIHRob3VnaCB0aGUgcmVzb3VyY2VzIGRpZG4ndCBjaGFuZ2UuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3dpdGgtbmVzdGVkLXN0YWNrJywgeyBvcHRpb25zOiBbJy0tdGFncycsICdrZXk9dmFsdWUnXSB9KTtcbiAgICBjb25zdCBjaGFuZ2VTZXQ0ID0gYXdhaXQgZ2V0TGF0ZXN0Q2hhbmdlU2V0KCk7XG4gICAgZXhwZWN0KGNoYW5nZVNldDQuQ2hhbmdlU2V0SWQpLm5vdC50b0VxdWFsKGNoYW5nZVNldDMuQ2hhbmdlU2V0SWQpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0Q2hhbmdlU2V0KCkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoeyBTdGFja05hbWU6IHN0YWNrQXJuIH0pKTtcbiAgICAgIGlmICghcmVzcG9uc2UuU3RhY2tzPy5bMF0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWQgbm90IGdldCBhIENoYW5nZVNldCBhdCBhbGwnKTtcbiAgICAgIH1cbiAgICAgIGZpeHR1cmUubG9nKGBGb3VuZCBDaGFuZ2UgU2V0ICR7cmVzcG9uc2UuU3RhY2tzPy5bMF0uQ2hhbmdlU2V0SWR9YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuU3RhY2tzPy5bMF07XG4gICAgfVxuICB9KSxcbik7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
(0, lib_1.integTest)('cdk diff --method=change-set can be run twice on a new stack', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
5
|
+
const stackName = fixture.fullStackName('test-1');
|
|
6
|
+
// First diff creates a CREATE changeset, leaving the stack in REVIEW_IN_PROGRESS
|
|
7
|
+
const diff1 = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
8
|
+
expect(diff1).toContain('AWS::SNS::Topic');
|
|
9
|
+
// Second diff should also succeed, not fail with "Stack does not exist" or UPDATE errors
|
|
10
|
+
const diff2 = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
11
|
+
expect(diff2).toContain('AWS::SNS::Topic');
|
|
12
|
+
}));
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtY2FuLWJlLXJ1bi10d2ljZS1vbi1hLW5ldy1zdGFjay5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstY2RrLWRpZmYtLS1tZXRob2QtY2hhbmdlLXNldC1jYW4tYmUtcnVuLXR3aWNlLW9uLWEtbmV3LXN0YWNrLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUE2RDtBQUU3RCxJQUFBLGVBQVMsRUFDUCw4REFBOEQsRUFDOUQsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsRCxpRkFBaUY7SUFDakYsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNDLHlGQUF5RjtJQUN6RixNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpZmYgLS1tZXRob2Q9Y2hhbmdlLXNldCBjYW4gYmUgcnVuIHR3aWNlIG9uIGEgbmV3IHN0YWNrJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKCd0ZXN0LTEnKTtcblxuICAgIC8vIEZpcnN0IGRpZmYgY3JlYXRlcyBhIENSRUFURSBjaGFuZ2VzZXQsIGxlYXZpbmcgdGhlIHN0YWNrIGluIFJFVklFV19JTl9QUk9HUkVTU1xuICAgIGNvbnN0IGRpZmYxID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcbiAgICBleHBlY3QoZGlmZjEpLnRvQ29udGFpbignQVdTOjpTTlM6OlRvcGljJyk7XG5cbiAgICAvLyBTZWNvbmQgZGlmZiBzaG91bGQgYWxzbyBzdWNjZWVkLCBub3QgZmFpbCB3aXRoIFwiU3RhY2sgZG9lcyBub3QgZXhpc3RcIiBvciBVUERBVEUgZXJyb3JzXG4gICAgY29uc3QgZGlmZjIgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2RpZmYnLCAnLS1tZXRob2Q9Y2hhbmdlLXNldCcsIHN0YWNrTmFtZV0pO1xuICAgIGV4cGVjdChkaWZmMikudG9Db250YWluKCdBV1M6OlNOUzo6VG9waWMnKTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
(0, lib_1.integTest)('cdk diff --method=change-set with doubly nested stacks', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
5
|
+
const stackName = fixture.fullStackName('with-doubly-nested-stack');
|
|
6
|
+
// Diff a stack with two levels of nesting
|
|
7
|
+
const diff = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
8
|
+
// Root stack should contain the outer nested stack
|
|
9
|
+
expect(diff).toContain('AWS::CloudFormation::Stack');
|
|
10
|
+
// The inner nested stack should contain the SNS topic
|
|
11
|
+
expect(diff).toContain('AWS::SNS::Topic');
|
|
12
|
+
// Should use changeset-based diff successfully
|
|
13
|
+
expect(diff).not.toContain('Could not create a change set');
|
|
14
|
+
expect(diff).toContain('read-only change set');
|
|
15
|
+
}));
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtd2l0aC1kb3VibHktbmVzdGVkLXN0YWNrcy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstY2RrLWRpZmYtLS1tZXRob2QtY2hhbmdlLXNldC13aXRoLWRvdWJseS1uZXN0ZWQtc3RhY2tzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUE2RDtBQUU3RCxJQUFBLGVBQVMsRUFDUCx3REFBd0QsRUFDeEQsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRXBFLDBDQUEwQztJQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUUzRSxtREFBbUQ7SUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3JELHNEQUFzRDtJQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUMsK0NBQStDO0lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDNUQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2NkayBkaWZmIC0tbWV0aG9kPWNoYW5nZS1zZXQgd2l0aCBkb3VibHkgbmVzdGVkIHN0YWNrcycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnd2l0aC1kb3VibHktbmVzdGVkLXN0YWNrJyk7XG5cbiAgICAvLyBEaWZmIGEgc3RhY2sgd2l0aCB0d28gbGV2ZWxzIG9mIG5lc3RpbmdcbiAgICBjb25zdCBkaWZmID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcblxuICAgIC8vIFJvb3Qgc3RhY2sgc2hvdWxkIGNvbnRhaW4gdGhlIG91dGVyIG5lc3RlZCBzdGFja1xuICAgIGV4cGVjdChkaWZmKS50b0NvbnRhaW4oJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyk7XG4gICAgLy8gVGhlIGlubmVyIG5lc3RlZCBzdGFjayBzaG91bGQgY29udGFpbiB0aGUgU05TIHRvcGljXG4gICAgZXhwZWN0KGRpZmYpLnRvQ29udGFpbignQVdTOjpTTlM6OlRvcGljJyk7XG4gICAgLy8gU2hvdWxkIHVzZSBjaGFuZ2VzZXQtYmFzZWQgZGlmZiBzdWNjZXNzZnVsbHlcbiAgICBleHBlY3QoZGlmZikubm90LnRvQ29udGFpbignQ291bGQgbm90IGNyZWF0ZSBhIGNoYW5nZSBzZXQnKTtcbiAgICBleHBlY3QoZGlmZikudG9Db250YWluKCdyZWFkLW9ubHkgY2hhbmdlIHNldCcpO1xuICB9KSxcbik7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
(0, lib_1.integTest)('cdk diff --method=change-set with nested stacks through full lifecycle', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
5
|
+
const stackName = fixture.fullStackName('with-nested-stack');
|
|
6
|
+
// 1. Diff a new stack with nested stacks (CREATE change set)
|
|
7
|
+
const diffNew = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
8
|
+
// Should show the nested stack resource in the root stack
|
|
9
|
+
expect(diffNew).toContain('AWS::CloudFormation::Stack');
|
|
10
|
+
// Should show the SNS topic from inside the nested stack
|
|
11
|
+
expect(diffNew).toContain('AWS::SNS::Topic');
|
|
12
|
+
// Should use changeset-based diff, not fall back to template diff
|
|
13
|
+
expect(diffNew).not.toContain('Could not create a change set');
|
|
14
|
+
expect(diffNew).not.toContain('falling back to template diff');
|
|
15
|
+
// Should show the changeset info message
|
|
16
|
+
expect(diffNew).toContain('read-only change set');
|
|
17
|
+
// 2. Deploy the stack
|
|
18
|
+
await fixture.cdkDeploy('with-nested-stack');
|
|
19
|
+
// 3. Diff after deploy with no changes — should report no differences
|
|
20
|
+
const diffNoChanges = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
21
|
+
expect(diffNoChanges).toContain('There were no differences');
|
|
22
|
+
expect(diffNoChanges).not.toContain('Could not create a change set');
|
|
23
|
+
// 4. Destroy the stack
|
|
24
|
+
await fixture.cdkDestroy('with-nested-stack');
|
|
25
|
+
// 5. Diff again after destroy (CREATE change set for a new stack)
|
|
26
|
+
const diffAfterDestroy = await fixture.cdk(['diff', '--method=change-set', stackName]);
|
|
27
|
+
expect(diffAfterDestroy).toContain('AWS::CloudFormation::Stack');
|
|
28
|
+
expect(diffAfterDestroy).toContain('AWS::SNS::Topic');
|
|
29
|
+
}));
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtd2l0aC1uZXN0ZWQtc3RhY2tzLXRocm91Z2gtZnVsbC1saWZlY3ljbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWNkay1kaWZmLS0tbWV0aG9kLWNoYW5nZS1zZXQtd2l0aC1uZXN0ZWQtc3RhY2tzLXRocm91Z2gtZnVsbC1saWZlY3ljbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0QsNkRBQTZEO0lBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlFLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEQseURBQXlEO0lBQ3pELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3QyxrRUFBa0U7SUFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMvRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQy9ELHlDQUF5QztJQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFbEQsc0JBQXNCO0lBQ3RCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTdDLHNFQUFzRTtJQUN0RSxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDN0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUVyRSx1QkFBdUI7SUFDdkIsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFOUMsa0VBQWtFO0lBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDakUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpZmYgLS1tZXRob2Q9Y2hhbmdlLXNldCB3aXRoIG5lc3RlZCBzdGFja3MgdGhyb3VnaCBmdWxsIGxpZmVjeWNsZScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnd2l0aC1uZXN0ZWQtc3RhY2snKTtcblxuICAgIC8vIDEuIERpZmYgYSBuZXcgc3RhY2sgd2l0aCBuZXN0ZWQgc3RhY2tzIChDUkVBVEUgY2hhbmdlIHNldClcbiAgICBjb25zdCBkaWZmTmV3ID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgbmVzdGVkIHN0YWNrIHJlc291cmNlIGluIHRoZSByb290IHN0YWNrXG4gICAgZXhwZWN0KGRpZmZOZXcpLnRvQ29udGFpbignQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgU05TIHRvcGljIGZyb20gaW5zaWRlIHRoZSBuZXN0ZWQgc3RhY2tcbiAgICBleHBlY3QoZGlmZk5ldykudG9Db250YWluKCdBV1M6OlNOUzo6VG9waWMnKTtcbiAgICAvLyBTaG91bGQgdXNlIGNoYW5nZXNldC1iYXNlZCBkaWZmLCBub3QgZmFsbCBiYWNrIHRvIHRlbXBsYXRlIGRpZmZcbiAgICBleHBlY3QoZGlmZk5ldykubm90LnRvQ29udGFpbignQ291bGQgbm90IGNyZWF0ZSBhIGNoYW5nZSBzZXQnKTtcbiAgICBleHBlY3QoZGlmZk5ldykubm90LnRvQ29udGFpbignZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlIGRpZmYnKTtcbiAgICAvLyBTaG91bGQgc2hvdyB0aGUgY2hhbmdlc2V0IGluZm8gbWVzc2FnZVxuICAgIGV4cGVjdChkaWZmTmV3KS50b0NvbnRhaW4oJ3JlYWQtb25seSBjaGFuZ2Ugc2V0Jyk7XG5cbiAgICAvLyAyLiBEZXBsb3kgdGhlIHN0YWNrXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3dpdGgtbmVzdGVkLXN0YWNrJyk7XG5cbiAgICAvLyAzLiBEaWZmIGFmdGVyIGRlcGxveSB3aXRoIG5vIGNoYW5nZXMg4oCUIHNob3VsZCByZXBvcnQgbm8gZGlmZmVyZW5jZXNcbiAgICBjb25zdCBkaWZmTm9DaGFuZ2VzID0gYXdhaXQgZml4dHVyZS5jZGsoWydkaWZmJywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcbiAgICBleHBlY3QoZGlmZk5vQ2hhbmdlcykudG9Db250YWluKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzJyk7XG4gICAgZXhwZWN0KGRpZmZOb0NoYW5nZXMpLm5vdC50b0NvbnRhaW4oJ0NvdWxkIG5vdCBjcmVhdGUgYSBjaGFuZ2Ugc2V0Jyk7XG5cbiAgICAvLyA0LiBEZXN0cm95IHRoZSBzdGFja1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveSgnd2l0aC1uZXN0ZWQtc3RhY2snKTtcblxuICAgIC8vIDUuIERpZmYgYWdhaW4gYWZ0ZXIgZGVzdHJveSAoQ1JFQVRFIGNoYW5nZSBzZXQgZm9yIGEgbmV3IHN0YWNrKVxuICAgIGNvbnN0IGRpZmZBZnRlckRlc3Ryb3kgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2RpZmYnLCAnLS1tZXRob2Q9Y2hhbmdlLXNldCcsIHN0YWNrTmFtZV0pO1xuICAgIGV4cGVjdChkaWZmQWZ0ZXJEZXN0cm95KS50b0NvbnRhaW4oJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyk7XG4gICAgZXhwZWN0KGRpZmZBZnRlckRlc3Ryb3kpLnRvQ29udGFpbignQVdTOjpTTlM6OlRvcGljJyk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../../../lib/assertions';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
require("../../../lib/assertions");
|
|
5
|
+
(0, lib_1.integTest)('cdk diff --security-only --method=change-set detects security changes in nested stacks', (0, lib_1.withSpecificFixture)('nested-stack-with-iam', async (fixture) => {
|
|
6
|
+
const stackName = fixture.fullStackName('nested-iam');
|
|
7
|
+
const diff = await fixture.cdk(['diff', '--security-only', '--method=change-set', stackName]);
|
|
8
|
+
// Two nested stacks have IAM roles
|
|
9
|
+
expect(diff).toContain('sts:AssumeRole');
|
|
10
|
+
expect(diff).toContain('lambda.amazonaws.com');
|
|
11
|
+
expect(diff).toContain('Number of stacks with differences: 2');
|
|
12
|
+
// The nested stack without security changes should say so on the next line
|
|
13
|
+
expect(diff).toHaveNextLineMatching(/Stack NoSecurityNested\S+/, 'There were no security-related changes');
|
|
14
|
+
}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tc2VjdXJpdHktb25seS0tbWV0aG9kLWNoYW5nZS1zZXQtZGV0ZWN0cy1zZWN1cml0eS1jaGFuZ2VzLWluLW5lc3RlZC1zdGFja3MuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWNkay1kaWZmLS0tc2VjdXJpdHktb25seS0tbWV0aG9kLWNoYW5nZS1zZXQtZGV0ZWN0cy1zZWN1cml0eS1jaGFuZ2VzLWluLW5lc3RlZC1zdGFja3MuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBQzlELG1DQUFpQztBQUVqQyxJQUFBLGVBQVMsRUFDUCx3RkFBd0YsRUFDeEYsSUFBQSx5QkFBbUIsRUFBQyx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDN0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV0RCxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUU5RixtQ0FBbUM7SUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFFL0QsMkVBQTJFO0lBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQywyQkFBMkIsRUFBRSx3Q0FBd0MsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuaW1wb3J0ICcuLi8uLi8uLi9saWIvYXNzZXJ0aW9ucyc7XG5cbmludGVnVGVzdChcbiAgJ2NkayBkaWZmIC0tc2VjdXJpdHktb25seSAtLW1ldGhvZD1jaGFuZ2Utc2V0IGRldGVjdHMgc2VjdXJpdHkgY2hhbmdlcyBpbiBuZXN0ZWQgc3RhY2tzJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgnbmVzdGVkLXN0YWNrLXdpdGgtaWFtJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ25lc3RlZC1pYW0nKTtcblxuICAgIGNvbnN0IGRpZmYgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2RpZmYnLCAnLS1zZWN1cml0eS1vbmx5JywgJy0tbWV0aG9kPWNoYW5nZS1zZXQnLCBzdGFja05hbWVdKTtcblxuICAgIC8vIFR3byBuZXN0ZWQgc3RhY2tzIGhhdmUgSUFNIHJvbGVzXG4gICAgZXhwZWN0KGRpZmYpLnRvQ29udGFpbignc3RzOkFzc3VtZVJvbGUnKTtcbiAgICBleHBlY3QoZGlmZikudG9Db250YWluKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpO1xuICAgIGV4cGVjdChkaWZmKS50b0NvbnRhaW4oJ051bWJlciBvZiBzdGFja3Mgd2l0aCBkaWZmZXJlbmNlczogMicpO1xuXG4gICAgLy8gVGhlIG5lc3RlZCBzdGFjayB3aXRob3V0IHNlY3VyaXR5IGNoYW5nZXMgc2hvdWxkIHNheSBzbyBvbiB0aGUgbmV4dCBsaW5lXG4gICAgZXhwZWN0KGRpZmYpLnRvSGF2ZU5leHRMaW5lTWF0Y2hpbmcoL1N0YWNrIE5vU2VjdXJpdHlOZXN0ZWRcXFMrLywgJ1RoZXJlIHdlcmUgbm8gc2VjdXJpdHktcmVsYXRlZCBjaGFuZ2VzJyk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../../../lib/assertions';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
require("../../../lib/assertions");
|
|
5
|
+
(0, lib_1.integTest)('cdk diff --security-only detects security changes in nested stacks', (0, lib_1.withSpecificFixture)('nested-stack-with-iam', async (fixture) => {
|
|
6
|
+
const stackName = fixture.fullStackName('nested-iam');
|
|
7
|
+
const diff = await fixture.cdk(['diff', '--security-only', stackName]);
|
|
8
|
+
// Two nested stacks have IAM roles
|
|
9
|
+
expect(diff).toContain('sts:AssumeRole');
|
|
10
|
+
expect(diff).toContain('lambda.amazonaws.com');
|
|
11
|
+
expect(diff).toContain('Number of stacks with differences: 2');
|
|
12
|
+
// The nested stack without security changes should say so on the next line
|
|
13
|
+
expect(diff).toHaveNextLineMatching(/Stack NoSecurityNested\S+/, 'There were no security-related changes');
|
|
14
|
+
}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNkay1kaWZmLS0tc2VjdXJpdHktb25seS1kZXRlY3RzLXNlY3VyaXR5LWNoYW5nZXMtaW4tbmVzdGVkLXN0YWNrcy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstY2RrLWRpZmYtLS1zZWN1cml0eS1vbmx5LWRldGVjdHMtc2VjdXJpdHktY2hhbmdlcy1pbi1uZXN0ZWQtc3RhY2tzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUE4RDtBQUM5RCxtQ0FBaUM7QUFFakMsSUFBQSxlQUFTLEVBQ1Asb0VBQW9FLEVBQ3BFLElBQUEseUJBQW1CLEVBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzdELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFdkUsbUNBQW1DO0lBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBRS9ELDJFQUEyRTtJQUMzRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsc0JBQXNCLENBQUMsMkJBQTJCLEVBQUUsd0NBQXdDLENBQUMsQ0FBQztBQUM3RyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoU3BlY2lmaWNGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCAnLi4vLi4vLi4vbGliL2Fzc2VydGlvbnMnO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgZGlmZiAtLXNlY3VyaXR5LW9ubHkgZGV0ZWN0cyBzZWN1cml0eSBjaGFuZ2VzIGluIG5lc3RlZCBzdGFja3MnLFxuICB3aXRoU3BlY2lmaWNGaXh0dXJlKCduZXN0ZWQtc3RhY2std2l0aC1pYW0nLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnbmVzdGVkLWlhbScpO1xuXG4gICAgY29uc3QgZGlmZiA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnZGlmZicsICctLXNlY3VyaXR5LW9ubHknLCBzdGFja05hbWVdKTtcblxuICAgIC8vIFR3byBuZXN0ZWQgc3RhY2tzIGhhdmUgSUFNIHJvbGVzXG4gICAgZXhwZWN0KGRpZmYpLnRvQ29udGFpbignc3RzOkFzc3VtZVJvbGUnKTtcbiAgICBleHBlY3QoZGlmZikudG9Db250YWluKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpO1xuICAgIGV4cGVjdChkaWZmKS50b0NvbnRhaW4oJ051bWJlciBvZiBzdGFja3Mgd2l0aCBkaWZmZXJlbmNlczogMicpO1xuXG4gICAgLy8gVGhlIG5lc3RlZCBzdGFjayB3aXRob3V0IHNlY3VyaXR5IGNoYW5nZXMgc2hvdWxkIHNheSBzbyBvbiB0aGUgbmV4dCBsaW5lXG4gICAgZXhwZWN0KGRpZmYpLnRvSGF2ZU5leHRMaW5lTWF0Y2hpbmcoL1N0YWNrIE5vU2VjdXJpdHlOZXN0ZWRcXFMrLywgJ1RoZXJlIHdlcmUgbm8gc2VjdXJpdHktcmVsYXRlZCBjaGFuZ2VzJyk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
(0, lib_1.integTest)('cdk apps must run attached to a TTY', (0, lib_1.withAws)((0, lib_1.withSpecificCdkApp)('tty-app', async (fixture) => {
|
|
5
|
+
// Certain customers pretty display libraries which stop being pretty if stdout is not attached to a terminal
|
|
6
|
+
// This application will fail if it doesn't detect a TTY
|
|
7
|
+
await fixture.cdkSynth({
|
|
8
|
+
tty: true,
|
|
9
|
+
});
|
|
10
|
+
}), { disableBootstrap: true }));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcHMtbXVzdC1oYXZlLXRlcm1pbmFsLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1hcHBzLW11c3QtaGF2ZS10ZXJtaW5hbC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBc0U7QUFFdEUsSUFBQSxlQUFTLEVBQ1AscUNBQXFDLEVBQ3JDLElBQUEsYUFBTyxFQUFDLElBQUEsd0JBQWtCLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUN0RCw2R0FBNkc7SUFDN0csd0RBQXdEO0lBQ3hELE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNyQixHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aEF3cywgd2l0aFNwZWNpZmljQ2RrQXBwIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIGFwcHMgbXVzdCBydW4gYXR0YWNoZWQgdG8gYSBUVFknLFxuICB3aXRoQXdzKHdpdGhTcGVjaWZpY0Nka0FwcCgndHR5LWFwcCcsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gQ2VydGFpbiBjdXN0b21lcnMgcHJldHR5IGRpc3BsYXkgbGlicmFyaWVzIHdoaWNoIHN0b3AgYmVpbmcgcHJldHR5IGlmIHN0ZG91dCBpcyBub3QgYXR0YWNoZWQgdG8gYSB0ZXJtaW5hbFxuICAgIC8vIFRoaXMgYXBwbGljYXRpb24gd2lsbCBmYWlsIGlmIGl0IGRvZXNuJ3QgZGV0ZWN0IGEgVFRZXG4gICAgYXdhaXQgZml4dHVyZS5jZGtTeW50aCh7XG4gICAgICB0dHk6IHRydWUsXG4gICAgfSk7XG4gIH0pLCB7IGRpc2FibGVCb290c3RyYXA6IHRydWUgfSksXG4pO1xuXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-idempotent-and-force.integtest.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-idempotent-and-force.integtest.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
(0, lib_1.integTest)('publish-assets is idempotent and --force re-uploads', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
6
|
+
const stackName = 'lambda';
|
|
7
|
+
const fullStackName = fixture.fullStackName(stackName);
|
|
8
|
+
// First publish
|
|
9
|
+
const firstOutput = await fixture.cdk(['publish-assets', fullStackName, '--unstable=publish-assets']);
|
|
10
|
+
expect(firstOutput).toMatch('Assets published successfully');
|
|
11
|
+
// Second publish without --force should detect nothing to do
|
|
12
|
+
const secondOutput = await fixture.cdk(['publish-assets', fullStackName, '--unstable=publish-assets']);
|
|
13
|
+
expect(secondOutput).toMatch('All assets are already published');
|
|
14
|
+
// Third publish with --force should re-upload
|
|
15
|
+
const forceOutput = await fixture.cdk(['publish-assets', fullStackName, '--unstable=publish-assets', '--force']);
|
|
16
|
+
expect(forceOutput).toMatch('Assets published successfully');
|
|
17
|
+
}));
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXB1Ymxpc2gtYXNzZXRzLWlkZW1wb3RlbnQtYW5kLWZvcmNlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1wdWJsaXNoLWFzc2V0cy1pZGVtcG90ZW50LWFuZC1mb3JjZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLHFEQUFxRCxFQUNyRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCxnQkFBZ0I7SUFDaEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQztJQUN0RyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFN0QsNkRBQTZEO0lBQzdELE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLENBQUM7SUFDdkcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBRWpFLDhDQUE4QztJQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqSCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAncHVibGlzaC1hc3NldHMgaXMgaWRlbXBvdGVudCBhbmQgLS1mb3JjZSByZS11cGxvYWRzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2xhbWJkYSc7XG4gICAgY29uc3QgZnVsbFN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpO1xuXG4gICAgLy8gRmlyc3QgcHVibGlzaFxuICAgIGNvbnN0IGZpcnN0T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGsoWydwdWJsaXNoLWFzc2V0cycsIGZ1bGxTdGFja05hbWUsICctLXVuc3RhYmxlPXB1Ymxpc2gtYXNzZXRzJ10pO1xuICAgIGV4cGVjdChmaXJzdE91dHB1dCkudG9NYXRjaCgnQXNzZXRzIHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHknKTtcblxuICAgIC8vIFNlY29uZCBwdWJsaXNoIHdpdGhvdXQgLS1mb3JjZSBzaG91bGQgZGV0ZWN0IG5vdGhpbmcgdG8gZG9cbiAgICBjb25zdCBzZWNvbmRPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ3B1Ymxpc2gtYXNzZXRzJywgZnVsbFN0YWNrTmFtZSwgJy0tdW5zdGFibGU9cHVibGlzaC1hc3NldHMnXSk7XG4gICAgZXhwZWN0KHNlY29uZE91dHB1dCkudG9NYXRjaCgnQWxsIGFzc2V0cyBhcmUgYWxyZWFkeSBwdWJsaXNoZWQnKTtcblxuICAgIC8vIFRoaXJkIHB1Ymxpc2ggd2l0aCAtLWZvcmNlIHNob3VsZCByZS11cGxvYWRcbiAgICBjb25zdCBmb3JjZU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFsncHVibGlzaC1hc3NldHMnLCBmdWxsU3RhY2tOYW1lLCAnLS11bnN0YWJsZT1wdWJsaXNoLWFzc2V0cycsICctLWZvcmNlJ10pO1xuICAgIGV4cGVjdChmb3JjZU91dHB1dCkudG9NYXRjaCgnQXNzZXRzIHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHknKTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
(0, lib_1.integTest)('publish-assets then deploy detects already uploaded assets', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
6
|
+
const stackName = 'lambda';
|
|
7
|
+
const fullStackName = fixture.fullStackName(stackName);
|
|
8
|
+
// First, publish assets
|
|
9
|
+
const publishOutput = await fixture.cdk(['publish-assets', fullStackName, '--unstable=publish-assets']);
|
|
10
|
+
expect(publishOutput).toMatch('Assets published successfully');
|
|
11
|
+
// Then deploy the same stack; it should detect the already published assets and skip re-publishing
|
|
12
|
+
const deployOutput = await fixture.cdkDeploy(stackName, { options: ['-v'], captureStderr: true });
|
|
13
|
+
expect(deployOutput).toMatch(/0 still need to be published/);
|
|
14
|
+
// Clean up
|
|
15
|
+
await fixture.cdkDestroy(stackName);
|
|
16
|
+
}));
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXB1Ymxpc2gtYXNzZXRzLXRoZW4tZGVwbG95LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1wdWJsaXNoLWFzc2V0cy10aGVuLWRlcGxveS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLDREQUE0RCxFQUM1RCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCx3QkFBd0I7SUFDeEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQztJQUN4RyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFL0QsbUdBQW1HO0lBQ25HLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFN0QsV0FBVztJQUNYLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdwdWJsaXNoLWFzc2V0cyB0aGVuIGRlcGxveSBkZXRlY3RzIGFscmVhZHkgdXBsb2FkZWQgYXNzZXRzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2xhbWJkYSc7XG4gICAgY29uc3QgZnVsbFN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpO1xuXG4gICAgLy8gRmlyc3QsIHB1Ymxpc2ggYXNzZXRzXG4gICAgY29uc3QgcHVibGlzaE91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFsncHVibGlzaC1hc3NldHMnLCBmdWxsU3RhY2tOYW1lLCAnLS11bnN0YWJsZT1wdWJsaXNoLWFzc2V0cyddKTtcbiAgICBleHBlY3QocHVibGlzaE91dHB1dCkudG9NYXRjaCgnQXNzZXRzIHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHknKTtcblxuICAgIC8vIFRoZW4gZGVwbG95IHRoZSBzYW1lIHN0YWNrOyBpdCBzaG91bGQgZGV0ZWN0IHRoZSBhbHJlYWR5IHB1Ymxpc2hlZCBhc3NldHMgYW5kIHNraXAgcmUtcHVibGlzaGluZ1xuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwgeyBvcHRpb25zOiBbJy12J10sIGNhcHR1cmVTdGRlcnI6IHRydWUgfSk7XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9NYXRjaCgvMCBzdGlsbCBuZWVkIHRvIGJlIHB1Ymxpc2hlZC8pO1xuXG4gICAgLy8gQ2xlYW4gdXBcbiAgICBhd2FpdCBmaXh0dXJlLmNka0Rlc3Ryb3koc3RhY2tOYW1lKTtcbiAgfSksXG4pO1xuIl19
|
package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-without-deploying.integtest.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/cli-integ-tests/publish-assets/cdk-publish-assets-without-deploying.integtest.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
+
const lib_1 = require("../../../lib");
|
|
5
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
6
|
+
(0, lib_1.integTest)('publish-assets without deploying', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
7
|
+
const stackName = 'lambda';
|
|
8
|
+
const fullStackName = fixture.fullStackName(stackName);
|
|
9
|
+
const output = await fixture.cdk(['publish-assets', fullStackName, '--unstable=publish-assets']);
|
|
10
|
+
expect(output).toMatch('Assets published successfully');
|
|
11
|
+
// assert the stack was not deployed
|
|
12
|
+
await expect(fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: fullStackName })))
|
|
13
|
+
.rejects.toThrow(/does not exist/);
|
|
14
|
+
}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXB1Ymxpc2gtYXNzZXRzLXdpdGhvdXQtZGVwbG95aW5nLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1wdWJsaXNoLWFzc2V0cy13aXRob3V0LWRlcGxveWluZy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxrQ0FBa0MsRUFDbEMsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzNCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQztJQUNqRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFeEQsb0NBQW9DO0lBQ3BDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLDZDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNuRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ3B1Ymxpc2gtYXNzZXRzIHdpdGhvdXQgZGVwbG95aW5nJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2xhbWJkYSc7XG4gICAgY29uc3QgZnVsbFN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpO1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGsoWydwdWJsaXNoLWFzc2V0cycsIGZ1bGxTdGFja05hbWUsICctLXVuc3RhYmxlPXB1Ymxpc2gtYXNzZXRzJ10pO1xuICAgIGV4cGVjdChvdXRwdXQpLnRvTWF0Y2goJ0Fzc2V0cyBwdWJsaXNoZWQgc3VjY2Vzc2Z1bGx5Jyk7XG5cbiAgICAvLyBhc3NlcnQgdGhlIHN0YWNrIHdhcyBub3QgZGVwbG95ZWRcbiAgICBhd2FpdCBleHBlY3QoZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lIH0pKSlcbiAgICAgIC5yZWplY3RzLnRvVGhyb3coL2RvZXMgbm90IGV4aXN0Lyk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -59,6 +59,9 @@ const lib_1 = require("../../lib");
|
|
|
59
59
|
duration: expect.objectContaining({
|
|
60
60
|
total: expect.anything(),
|
|
61
61
|
}),
|
|
62
|
+
counters: expect.objectContaining({
|
|
63
|
+
stacks: expect.anything(),
|
|
64
|
+
}),
|
|
62
65
|
}),
|
|
63
66
|
expect.objectContaining({
|
|
64
67
|
event: expect.objectContaining({
|
|
@@ -111,4 +114,4 @@ const lib_1 = require("../../lib");
|
|
|
111
114
|
]);
|
|
112
115
|
fs.unlinkSync(telemetryFile);
|
|
113
116
|
}));
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkNBQXdEO0FBQ3hELG1DQUEwRDtBQUUxRCxJQUFBLGVBQVMsRUFDUCwrQkFBK0IsRUFDL0IsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ25DLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQy9FLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUNwQixDQUFDO0lBRUYsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU3RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xDLFFBQVEsRUFB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QyxnQkFBZ0IsQ0FBQztnQkFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUM1QixnQkFBZ0IsRUFBRSxxQ0FBeUI7Z0JBQzNDLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0IsQ0FBQztZQUNGLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQ3pCLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IENVUlJFTlRfVEVMRU1FVFJZX1ZFUlNJT04gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2NkayBzeW50aCB3aXRoIHRlbGVtZXRyeSBkYXRhJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYHRlbGVtZXRyeS0ke0RhdGUubm93KCl9Lmpzb25gKTtcblxuICAgIGNvbnN0IHN5bnRoT3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGsoXG4gICAgICBbJ3N5bnRoJywgZml4dHVyZS5mdWxsU3RhY2tOYW1lKCd0ZXN0LTEnKSwgYC0tdGVsZW1ldHJ5LWZpbGU9JHt0ZWxlbWV0cnlGaWxlfWBdLFxuICAgICAgeyB2ZXJib3NlTGV2ZWw6IDMgfSwgLy8gdHJhY2UgbW9kZVxuICAgICk7XG5cbiAgICAvLyBDaGVjayB0aGUgdHJhY2UgdGhhdCB0ZWxlbWV0cnkgd2FzIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICAgIGV4cGVjdChzeW50aE91dHB1dCkudG9Db250YWluKCdUZWxlbWV0cnkgU2VudCBTdWNjZXNzZnVsbHknKTtcblxuICAgIGNvbnN0IGpzb24gPSBmcy5yZWFkSlNPTlN5bmModGVsZW1ldHJ5RmlsZSk7XG4gICAgZXhwZWN0KGpzb24pLnRvRXF1YWwoW1xuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnc3ludGgnLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICAgIHVuc3RhYmxlOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIFsndGVsZW1ldHJ5LWZpbGUnXTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBsb29rdXBzOiB0cnVlLFxuICAgICAgICAgICAgICBbJ2lnbm9yZS1lcnJvcnMnXTogZmFsc2UsXG4gICAgICAgICAgICAgIGpzb246IGZhbHNlLFxuICAgICAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgICAgICAgIHN0YWdpbmc6IHRydWUsXG4gICAgICAgICAgICAgIFsnbm8tY29sb3InXTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSwgLy8gY2hhbmdlcyBiYXNlZCBvbiB3aGVyZSB0aGlzIGlzIGNhbGxlZFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICBxdWlldDogZmFsc2UsXG4gICAgICAgICAgICAgIHllczogZmFsc2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ1NZTlRIJyxcbiAgICAgICAgfSksXG4gICAgICAgIC8vIHNvbWUgb2YgdGhlc2UgY2FuIGNoYW5nZTsgYnV0IHdlIGFzc2VydCB0aGF0IHNvbWUgdmFsdWUgaXMgcmVjb3JkZWRcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBpbnN0YWxsYXRpb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgc2Vzc2lvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB0ZWxlbWV0cnlWZXJzaW9uOiBDVVJSRU5UX1RFTEVNRVRSWV9WRVJTSU9OLFxuICAgICAgICAgIGNka0NsaVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBmaXh0dXJlLmxpYnJhcnkucmVxdWVzdGVkVmVyc2lvbigpLFxuICAgICAgICAgIHJlZ2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgICAgdGltZXN0YW1wOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGVudmlyb25tZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIG9zOiB7XG4gICAgICAgICAgICBwbGF0Zm9ybTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgICByZWxlYXNlOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGVWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIHByb2plY3Q6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHt9KSxcbiAgICAgICAgZHVyYXRpb246IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCcsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgICAgdW5zdGFibGU6ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgWyd0ZWxlbWV0cnktZmlsZSddOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIGxvb2t1cHM6IHRydWUsXG4gICAgICAgICAgICAgIFsnaWdub3JlLWVycm9ycyddOiBmYWxzZSxcbiAgICAgICAgICAgICAganNvbjogZmFsc2UsXG4gICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhZ2luZzogdHJ1ZSxcbiAgICAgICAgICAgICAgWyduby1jb2xvciddOiBmYWxzZSxcbiAgICAgICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLCAvLyBjaGFuZ2VzIGJhc2VkIG9uIHdoZXJlIHRoaXMgaXMgY2FsbGVkXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICAgIHF1aWV0OiBmYWxzZSxcbiAgICAgICAgICAgICAgeWVzOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ1NVQ0NFRURFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogQ1VSUkVOVF9URUxFTUVUUllfVkVSU0lPTixcbiAgICAgICAgICBjZGtDbGlWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBjZGtMaWJyYXJ5VmVyc2lvbjogZml4dHVyZS5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSxcbiAgICAgICAgICByZWdpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICAgIHRpbWVzdGFtcDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBlbnZpcm9ubWVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBvczoge1xuICAgICAgICAgICAgcGxhdGZvcm06IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgICAgcmVsZWFzZTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBub2RlVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBwcm9qZWN0OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7fSksXG4gICAgICAgIGR1cmF0aW9uOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIF0pO1xuICAgIGZzLnVubGlua1N5bmModGVsZW1ldHJ5RmlsZSk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsMkNBQXdEO0FBQ3hELG1DQUEwRDtBQUUxRCxJQUFBLGVBQVMsRUFDUCwrQkFBK0IsRUFDL0IsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ25DLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQy9FLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUNwQixDQUFDO0lBRUYsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU3RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xDLFFBQVEsRUFB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ZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBDVVJSRU5UX1RFTEVNRVRSWV9WRVJTSU9OIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgc3ludGggd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGB0ZWxlbWV0cnktJHtEYXRlLm5vdygpfS5qc29uYCk7XG5cbiAgICBjb25zdCBzeW50aE91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFxuICAgICAgWydzeW50aCcsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksIGAtLXRlbGVtZXRyeS1maWxlPSR7dGVsZW1ldHJ5RmlsZX1gXSxcbiAgICAgIHsgdmVyYm9zZUxldmVsOiAzIH0sIC8vIHRyYWNlIG1vZGVcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgdGhlIHRyYWNlIHRoYXQgdGVsZW1ldHJ5IHdhcyBleGVjdXRlZCBzdWNjZXNzZnVsbHlcbiAgICBleHBlY3Qoc3ludGhPdXRwdXQpLnRvQ29udGFpbignVGVsZW1ldHJ5IFNlbnQgU3VjY2Vzc2Z1bGx5Jyk7XG5cbiAgICBjb25zdCBqc29uID0gZnMucmVhZEpTT05TeW5jKHRlbGVtZXRyeUZpbGUpO1xuICAgIGV4cGVjdChqc29uKS50b0VxdWFsKFtcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICB5ZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBzb21lIG9mIHRoZXNlIGNhbiBjaGFuZ2U7IGJ1dCB3ZSBhc3NlcnQgdGhhdCBzb21lIHZhbHVlIGlzIHJlY29yZGVkXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogQ1VSUkVOVF9URUxFTUVUUllfVkVSU0lPTixcbiAgICAgICAgICBjZGtDbGlWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBjZGtMaWJyYXJ5VmVyc2lvbjogZml4dHVyZS5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSxcbiAgICAgICAgICByZWdpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MScpLFxuICAgICAgICAgIHRpbWVzdGFtcDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBlbnZpcm9ubWVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBvczoge1xuICAgICAgICAgICAgcGxhdGZvcm06IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgICAgcmVsZWFzZTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBub2RlVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBwcm9qZWN0OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7fSksXG4gICAgICAgIGR1cmF0aW9uOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgY291bnRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBzdGFja3M6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnc3ludGgnLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICAgIHVuc3RhYmxlOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIFsndGVsZW1ldHJ5LWZpbGUnXTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBsb29rdXBzOiB0cnVlLFxuICAgICAgICAgICAgICBbJ2lnbm9yZS1lcnJvcnMnXTogZmFsc2UsXG4gICAgICAgICAgICAgIGpzb246IGZhbHNlLFxuICAgICAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgICAgICAgIHN0YWdpbmc6IHRydWUsXG4gICAgICAgICAgICAgIFsnbm8tY29sb3InXTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSwgLy8gY2hhbmdlcyBiYXNlZCBvbiB3aGVyZSB0aGlzIGlzIGNhbGxlZFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICBxdWlldDogZmFsc2UsXG4gICAgICAgICAgICAgIHllczogZmFsc2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ0lOVk9LRScsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBzZXNzaW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHRlbGVtZXRyeVZlcnNpb246IENVUlJFTlRfVEVMRU1FVFJZX1ZFUlNJT04sXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgcHJvamVjdDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe30pLFxuICAgICAgICBkdXJhdGlvbjogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIHRvdGFsOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG4iXX0=
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
|
-
const lib_1 = require("../../../lib");
|
|
5
|
-
(0, lib_1.integTest)('fast deploy', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
6
|
-
// we are using a stack with a nested stack because CFN will always attempt to
|
|
7
|
-
// update a nested stack, which will allow us to verify that updates are actually
|
|
8
|
-
// skipped unless --force is specified.
|
|
9
|
-
const stackArn = await fixture.cdkDeploy('with-nested-stack', { captureStderr: false });
|
|
10
|
-
const changeSet1 = await getLatestChangeSet();
|
|
11
|
-
// Deploy the same stack again, there should be no new change set created
|
|
12
|
-
await fixture.cdkDeploy('with-nested-stack');
|
|
13
|
-
const changeSet2 = await getLatestChangeSet();
|
|
14
|
-
expect(changeSet2.ChangeSetId).toEqual(changeSet1.ChangeSetId);
|
|
15
|
-
// Deploy the stack again with --force, now we should create a changeset
|
|
16
|
-
await fixture.cdkDeploy('with-nested-stack', { options: ['--force'] });
|
|
17
|
-
const changeSet3 = await getLatestChangeSet();
|
|
18
|
-
expect(changeSet3.ChangeSetId).not.toEqual(changeSet2.ChangeSetId);
|
|
19
|
-
// Deploy the stack again with tags, expected to create a new changeset
|
|
20
|
-
// even though the resources didn't change.
|
|
21
|
-
await fixture.cdkDeploy('with-nested-stack', { options: ['--tags', 'key=value'] });
|
|
22
|
-
const changeSet4 = await getLatestChangeSet();
|
|
23
|
-
expect(changeSet4.ChangeSetId).not.toEqual(changeSet3.ChangeSetId);
|
|
24
|
-
async function getLatestChangeSet() {
|
|
25
|
-
const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStacksCommand({ StackName: stackArn }));
|
|
26
|
-
if (!response.Stacks?.[0]) {
|
|
27
|
-
throw new Error('Did not get a ChangeSet at all');
|
|
28
|
-
}
|
|
29
|
-
fixture.log(`Found Change Set ${response.Stacks?.[0].ChangeSetId}`);
|
|
30
|
-
return response.Stacks?.[0];
|
|
31
|
-
}
|
|
32
|
-
}));
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWZhc3QtZGVwbG95LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1mYXN0LWRlcGxveS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUNQLGFBQWEsRUFDYixJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyw4RUFBOEU7SUFDOUUsaUZBQWlGO0lBQ2pGLHVDQUF1QztJQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4RixNQUFNLFVBQVUsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7SUFFOUMseUVBQXlFO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztJQUM5QyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFL0Qsd0VBQXdFO0lBQ3hFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7SUFDOUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuRSx1RUFBdUU7SUFDdkUsMkNBQTJDO0lBQzNDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsTUFBTSxVQUFVLEdBQUcsTUFBTSxrQkFBa0IsRUFBRSxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFbkUsS0FBSyxVQUFVLGtCQUFrQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLDZDQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2Zhc3QgZGVwbG95JyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gd2UgYXJlIHVzaW5nIGEgc3RhY2sgd2l0aCBhIG5lc3RlZCBzdGFjayBiZWNhdXNlIENGTiB3aWxsIGFsd2F5cyBhdHRlbXB0IHRvXG4gICAgLy8gdXBkYXRlIGEgbmVzdGVkIHN0YWNrLCB3aGljaCB3aWxsIGFsbG93IHVzIHRvIHZlcmlmeSB0aGF0IHVwZGF0ZXMgYXJlIGFjdHVhbGx5XG4gICAgLy8gc2tpcHBlZCB1bmxlc3MgLS1mb3JjZSBpcyBzcGVjaWZpZWQuXG4gICAgY29uc3Qgc3RhY2tBcm4gPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnd2l0aC1uZXN0ZWQtc3RhY2snLCB7IGNhcHR1cmVTdGRlcnI6IGZhbHNlIH0pO1xuICAgIGNvbnN0IGNoYW5nZVNldDEgPSBhd2FpdCBnZXRMYXRlc3RDaGFuZ2VTZXQoKTtcblxuICAgIC8vIERlcGxveSB0aGUgc2FtZSBzdGFjayBhZ2FpbiwgdGhlcmUgc2hvdWxkIGJlIG5vIG5ldyBjaGFuZ2Ugc2V0IGNyZWF0ZWRcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnd2l0aC1uZXN0ZWQtc3RhY2snKTtcbiAgICBjb25zdCBjaGFuZ2VTZXQyID0gYXdhaXQgZ2V0TGF0ZXN0Q2hhbmdlU2V0KCk7XG4gICAgZXhwZWN0KGNoYW5nZVNldDIuQ2hhbmdlU2V0SWQpLnRvRXF1YWwoY2hhbmdlU2V0MS5DaGFuZ2VTZXRJZCk7XG5cbiAgICAvLyBEZXBsb3kgdGhlIHN0YWNrIGFnYWluIHdpdGggLS1mb3JjZSwgbm93IHdlIHNob3VsZCBjcmVhdGUgYSBjaGFuZ2VzZXRcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnd2l0aC1uZXN0ZWQtc3RhY2snLCB7IG9wdGlvbnM6IFsnLS1mb3JjZSddIH0pO1xuICAgIGNvbnN0IGNoYW5nZVNldDMgPSBhd2FpdCBnZXRMYXRlc3RDaGFuZ2VTZXQoKTtcbiAgICBleHBlY3QoY2hhbmdlU2V0My5DaGFuZ2VTZXRJZCkubm90LnRvRXF1YWwoY2hhbmdlU2V0Mi5DaGFuZ2VTZXRJZCk7XG5cbiAgICAvLyBEZXBsb3kgdGhlIHN0YWNrIGFnYWluIHdpdGggdGFncywgZXhwZWN0ZWQgdG8gY3JlYXRlIGEgbmV3IGNoYW5nZXNldFxuICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSByZXNvdXJjZXMgZGlkbid0IGNoYW5nZS5cbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnd2l0aC1uZXN0ZWQtc3RhY2snLCB7IG9wdGlvbnM6IFsnLS10YWdzJywgJ2tleT12YWx1ZSddIH0pO1xuICAgIGNvbnN0IGNoYW5nZVNldDQgPSBhd2FpdCBnZXRMYXRlc3RDaGFuZ2VTZXQoKTtcbiAgICBleHBlY3QoY2hhbmdlU2V0NC5DaGFuZ2VTZXRJZCkubm90LnRvRXF1YWwoY2hhbmdlU2V0My5DaGFuZ2VTZXRJZCk7XG5cbiAgICBhc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RDaGFuZ2VTZXQoKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQobmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7IFN0YWNrTmFtZTogc3RhY2tBcm4gfSkpO1xuICAgICAgaWYgKCFyZXNwb25zZS5TdGFja3M/LlswXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpZCBub3QgZ2V0IGEgQ2hhbmdlU2V0IGF0IGFsbCcpO1xuICAgICAgfVxuICAgICAgZml4dHVyZS5sb2coYEZvdW5kIENoYW5nZSBTZXQgJHtyZXNwb25zZS5TdGFja3M/LlswXS5DaGFuZ2VTZXRJZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5TdGFja3M/LlswXTtcbiAgICB9XG4gIH0pLFxuKTtcblxuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/tests/cli-integ-tests/{ci-output → output}/cdk-ci-true-output-to-stdout.integtest.js
RENAMED
|
File without changes
|