@aws-cdk-testing/cli-integ 3.22.3 → 3.24.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/lib/cli/run-suite.js +7 -1
- package/lib/cli/stage-distribution.js +6 -6
- package/npm-shrinkwrap.json +1668 -3333
- package/package.json +24 -24
- package/resources/cdk-apps/app/app.js +23 -0
- package/resources/cdk-apps/app/docker-concurrent/image1/Dockerfile +2 -0
- package/resources/cdk-apps/app/docker-concurrent/image2/Dockerfile +2 -0
- package/resources/cdk-apps/app/docker-concurrent/image3/Dockerfile +2 -0
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.js +17 -22
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.js +17 -22
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.js +8 -13
- package/tests/cli-integ-tests/deploy/cdk-construct-with-builtin-lambda-function.integtest.js +1 -2
- package/tests/cli-integ-tests/deploy/cdk-deploy-stack-with-multiple-docker-assets.integtest.js +10 -0
- package/tests/cli-integ-tests/deploy/cdk-stage-with-bundled-lambda-function.integtest.js +1 -2
- package/tests/cli-integ-tests/deploy/cdk-termination-protection.integtest.js +2 -2
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-deployment-supports-ecs-service.integtest.js +5 -4
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +5 -4
- package/tests/cli-integ-tests/import/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.js +31 -37
- package/tests/cli-integ-tests/import/cdk-test-resource-import.integtest.js +26 -32
- package/tests/cli-integ-tests/lookup/cdk-vpc-lookup.integtest.js +1 -3
- package/tests/cli-integ-tests/migrate/cdk-migrate-generates-migrate.json.integtest.js +1 -2
- package/tests/cli-integ-tests/migrate/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +3 -9
- package/tests/cli-integ-tests/migrate/testcase.js +21 -27
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-detect-changes.integtest.js +28 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-filter-by-patterns.integtest.js +30 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-no-changes.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-no-changes.integtest.js +19 -0
- package/tests/cli-integ-tests/rollback/cdk-test-cdk-rollback---force.integtest.js +22 -27
- package/tests/cli-integ-tests/rollback/cdk-test-cdk-rollback.integtest.js +15 -20
- package/tests/cli-integ-tests/watch/cdk-watch-detects-file-changes-with-glob-patterns-negative.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/watch/cdk-watch-detects-file-changes-with-glob-patterns-negative.integtest.js +72 -0
- package/tests/cli-integ-tests/watch/cdk-watch-detects-file-changes-with-glob-patterns.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/watch/cdk-watch-detects-file-changes-with-glob-patterns.integtest.js +59 -0
- package/tests/cli-integ-tests/watch/watch-helpers.d.ts +11 -0
- package/tests/cli-integ-tests/watch/watch-helpers.js +33 -0
- package/tests/telemetry-integ-tests/cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.d.ts +1 -0
- package/tests/telemetry-integ-tests/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts +1 -0
- package/tests/toolkit-lib-integ-tests/toolkit-deploy-stack-with-multiple-docker-assets.integtest.d.ts +1 -0
- package/tests/toolkit-lib-integ-tests/toolkit-deploy-stack-with-multiple-docker-assets.integtest.js +22 -0
- package/tests/toolkit-lib-integ-tests/toolkit-watch-glob-negative.integtest.d.ts +1 -0
- package/tests/toolkit-lib-integ-tests/toolkit-watch-glob-negative.integtest.js +52 -0
- package/tests/toolkit-lib-integ-tests/toolkit-watch-glob.integtest.d.ts +1 -0
- package/tests/toolkit-lib-integ-tests/toolkit-watch-glob.integtest.js +68 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run.integtest.js +0 -69
- /package/tests/cli-integ-tests/{cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.d.ts → deploy/cdk-deploy-stack-with-multiple-docker-assets.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts → refactor/cdk-refactor-dry-run-detect-changes.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/refactor/{cdk-refactor-dry-run.integtest.d.ts → cdk-refactor-dry-run-filter-by-patterns.integtest.d.ts} +0 -0
- /package/tests/{cli-integ-tests → telemetry-integ-tests}/cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.js +0 -0
- /package/tests/{cli-integ-tests → telemetry-integ-tests}/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.js +0 -0
package/tests/cli-integ-tests/watch/cdk-watch-detects-file-changes-with-glob-patterns.integtest.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const child_process = require("child_process");
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const watch_helpers_1 = require("./watch-helpers");
|
|
7
|
+
const lib_1 = require("../../../lib");
|
|
8
|
+
jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
|
|
9
|
+
(0, lib_1.integTest)('cdk watch detects file changes with glob patterns', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
10
|
+
// Create a test file that will be watched
|
|
11
|
+
const testFile = path.join(fixture.integTestDir, 'watch-test-file.ts');
|
|
12
|
+
fs.writeFileSync(testFile, 'export const initial = true;');
|
|
13
|
+
// Update cdk.json to include watch configuration
|
|
14
|
+
const cdkJsonPath = path.join(fixture.integTestDir, 'cdk.json');
|
|
15
|
+
const cdkJson = JSON.parse(fs.readFileSync(cdkJsonPath, 'utf-8'));
|
|
16
|
+
cdkJson.watch = {
|
|
17
|
+
include: ['**/*.ts'],
|
|
18
|
+
};
|
|
19
|
+
fs.writeFileSync(cdkJsonPath, JSON.stringify(cdkJson, null, 2));
|
|
20
|
+
await fixture.cli.makeCliAvailable();
|
|
21
|
+
let output = '';
|
|
22
|
+
// Start cdk watch with detached process group for clean termination
|
|
23
|
+
const watchProcess = child_process.spawn('cdk', [
|
|
24
|
+
'watch', '--hotswap', '-v', fixture.fullStackName('test-1'),
|
|
25
|
+
], {
|
|
26
|
+
cwd: fixture.integTestDir,
|
|
27
|
+
shell: true,
|
|
28
|
+
detached: true,
|
|
29
|
+
env: { ...process.env, ...fixture.cdkShellEnv() },
|
|
30
|
+
});
|
|
31
|
+
try {
|
|
32
|
+
watchProcess.stdout?.on('data', (data) => {
|
|
33
|
+
output += data.toString();
|
|
34
|
+
fixture.log(data.toString());
|
|
35
|
+
});
|
|
36
|
+
watchProcess.stderr?.on('data', (data) => {
|
|
37
|
+
output += data.toString();
|
|
38
|
+
fixture.log(data.toString());
|
|
39
|
+
});
|
|
40
|
+
await (0, watch_helpers_1.waitForOutput)(() => output, "Triggering initial 'cdk deploy'");
|
|
41
|
+
fixture.log('✓ Watch start detected');
|
|
42
|
+
await (0, watch_helpers_1.waitForOutput)(() => output, 'deployment time');
|
|
43
|
+
fixture.log('✓ Initial deployment completed');
|
|
44
|
+
// Update the test file timestamp to trigger a watch event
|
|
45
|
+
child_process.spawn('touch', [testFile]);
|
|
46
|
+
await (0, watch_helpers_1.waitForOutput)(() => output, 'Detected change to');
|
|
47
|
+
fixture.log('✓ Watch detected file change');
|
|
48
|
+
// Wait for the second deployment to complete (2 occurrences of 'deployment time')
|
|
49
|
+
await (0, watch_helpers_1.waitForCondition)(() => (output.match(/deployment time/g) || []).length >= 2);
|
|
50
|
+
fixture.log('✓ Second deployment completed');
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
// Kill the entire process group (negative PID)
|
|
54
|
+
if (watchProcess.pid) {
|
|
55
|
+
process.kill(-watchProcess.pid, 'SIGTERM');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXdhdGNoLWRldGVjdHMtZmlsZS1jaGFuZ2VzLXdpdGgtZ2xvYi1wYXR0ZXJucy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstd2F0Y2gtZGV0ZWN0cy1maWxlLWNoYW5nZXMtd2l0aC1nbG9iLXBhdHRlcm5zLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1EQUFrRTtBQUNsRSxzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTVELElBQUEsZUFBUyxFQUNQLG1EQUFtRCxFQUNuRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQywwQ0FBMEM7SUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdkUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUUzRCxpREFBaUQ7SUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3JCLENBQUM7SUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUVyQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsb0VBQW9FO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0tBQzVELEVBQUU7UUFDRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDekIsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtRQUNkLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtLQUNsRCxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUM7UUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUEsNkJBQWEsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdEMsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlDLDBEQUEwRDtRQUMxRCxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFekMsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRTVDLGtGQUFrRjtRQUNsRixNQUFNLElBQUEsZ0NBQWdCLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMvQyxDQUFDO1lBQVMsQ0FBQztRQUNULCtDQUErQztRQUMvQyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHdhaXRGb3JPdXRwdXQsIHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICcuL3dhdGNoLWhlbHBlcnMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMyAqIDYwICogMTAwMCk7IC8vIDMgbWludXRlcyBmb3Igd2F0Y2ggdGVzdHNcblxuaW50ZWdUZXN0KFxuICAnY2RrIHdhdGNoIGRldGVjdHMgZmlsZSBjaGFuZ2VzIHdpdGggZ2xvYiBwYXR0ZXJucycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIENyZWF0ZSBhIHRlc3QgZmlsZSB0aGF0IHdpbGwgYmUgd2F0Y2hlZFxuICAgIGNvbnN0IHRlc3RGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnd2F0Y2gtdGVzdC1maWxlLnRzJyk7XG4gICAgZnMud3JpdGVGaWxlU3luYyh0ZXN0RmlsZSwgJ2V4cG9ydCBjb25zdCBpbml0aWFsID0gdHJ1ZTsnKTtcblxuICAgIC8vIFVwZGF0ZSBjZGsuanNvbiB0byBpbmNsdWRlIHdhdGNoIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBjZGtKc29uUGF0aCA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Nkay5qc29uJyk7XG4gICAgY29uc3QgY2RrSnNvbiA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNka0pzb25QYXRoLCAndXRmLTgnKSk7XG4gICAgY2RrSnNvbi53YXRjaCA9IHtcbiAgICAgIGluY2x1ZGU6IFsnKiovKi50cyddLFxuICAgIH07XG4gICAgZnMud3JpdGVGaWxlU3luYyhjZGtKc29uUGF0aCwgSlNPTi5zdHJpbmdpZnkoY2RrSnNvbiwgbnVsbCwgMikpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jbGkubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgbGV0IG91dHB1dCA9ICcnO1xuXG4gICAgLy8gU3RhcnQgY2RrIHdhdGNoIHdpdGggZGV0YWNoZWQgcHJvY2VzcyBncm91cCBmb3IgY2xlYW4gdGVybWluYXRpb25cbiAgICBjb25zdCB3YXRjaFByb2Nlc3MgPSBjaGlsZF9wcm9jZXNzLnNwYXduKCdjZGsnLCBbXG4gICAgICAnd2F0Y2gnLCAnLS1ob3Rzd2FwJywgJy12JywgZml4dHVyZS5mdWxsU3RhY2tOYW1lKCd0ZXN0LTEnKSxcbiAgICBdLCB7XG4gICAgICBjd2Q6IGZpeHR1cmUuaW50ZWdUZXN0RGlyLFxuICAgICAgc2hlbGw6IHRydWUsXG4gICAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiwgLi4uZml4dHVyZS5jZGtTaGVsbEVudigpIH0sXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgd2F0Y2hQcm9jZXNzLnN0ZG91dD8ub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBvdXRwdXQgKz0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICBmaXh0dXJlLmxvZyhkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgfSk7XG4gICAgICB3YXRjaFByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICAgIG91dHB1dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIGZpeHR1cmUubG9nKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgd2FpdEZvck91dHB1dCgoKSA9PiBvdXRwdXQsIFwiVHJpZ2dlcmluZyBpbml0aWFsICdjZGsgZGVwbG95J1wiKTtcbiAgICAgIGZpeHR1cmUubG9nKCfinJMgV2F0Y2ggc3RhcnQgZGV0ZWN0ZWQnKTtcblxuICAgICAgYXdhaXQgd2FpdEZvck91dHB1dCgoKSA9PiBvdXRwdXQsICdkZXBsb3ltZW50IHRpbWUnKTtcbiAgICAgIGZpeHR1cmUubG9nKCfinJMgSW5pdGlhbCBkZXBsb3ltZW50IGNvbXBsZXRlZCcpO1xuXG4gICAgICAvLyBVcGRhdGUgdGhlIHRlc3QgZmlsZSB0aW1lc3RhbXAgdG8gdHJpZ2dlciBhIHdhdGNoIGV2ZW50XG4gICAgICBjaGlsZF9wcm9jZXNzLnNwYXduKCd0b3VjaCcsIFt0ZXN0RmlsZV0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yT3V0cHV0KCgpID0+IG91dHB1dCwgJ0RldGVjdGVkIGNoYW5nZSB0bycpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBXYXRjaCBkZXRlY3RlZCBmaWxlIGNoYW5nZScpO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGRlcGxveW1lbnQgdG8gY29tcGxldGUgKDIgb2NjdXJyZW5jZXMgb2YgJ2RlcGxveW1lbnQgdGltZScpXG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IChvdXRwdXQubWF0Y2goL2RlcGxveW1lbnQgdGltZS9nKSB8fCBbXSkubGVuZ3RoID49IDIpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBTZWNvbmQgZGVwbG95bWVudCBjb21wbGV0ZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gS2lsbCB0aGUgZW50aXJlIHByb2Nlc3MgZ3JvdXAgKG5lZ2F0aXZlIFBJRClcbiAgICAgIGlmICh3YXRjaFByb2Nlc3MucGlkKSB7XG4gICAgICAgIHByb2Nlc3Mua2lsbCgtd2F0Y2hQcm9jZXNzLnBpZCwgJ1NJR1RFUk0nKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helper functions for watch integration tests.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Wait for a specific string to appear in the output.
|
|
6
|
+
*/
|
|
7
|
+
export declare function waitForOutput(getOutput: () => string, searchString: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Wait for a condition to become true.
|
|
10
|
+
*/
|
|
11
|
+
export declare function waitForCondition(condition: () => boolean): Promise<void>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared helper functions for watch integration tests.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.waitForOutput = waitForOutput;
|
|
7
|
+
exports.waitForCondition = waitForCondition;
|
|
8
|
+
/**
|
|
9
|
+
* Poll a condition until we see it.
|
|
10
|
+
*/
|
|
11
|
+
async function poll(condition) {
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
const check = () => {
|
|
14
|
+
if (condition())
|
|
15
|
+
return resolve();
|
|
16
|
+
setTimeout(check, 1000);
|
|
17
|
+
};
|
|
18
|
+
check();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Wait for a specific string to appear in the output.
|
|
23
|
+
*/
|
|
24
|
+
async function waitForOutput(getOutput, searchString) {
|
|
25
|
+
return poll(() => getOutput().includes(searchString));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Wait for a condition to become true.
|
|
29
|
+
*/
|
|
30
|
+
async function waitForCondition(condition) {
|
|
31
|
+
return poll(condition);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndhdGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQWtCSCxzQ0FFQztBQUtELDRDQUVDO0FBekJEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLElBQUksQ0FBQyxTQUF3QjtJQUMxQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksU0FBUyxFQUFFO2dCQUFFLE9BQU8sT0FBTyxFQUFFLENBQUM7WUFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFDRixLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxTQUF1QixFQUFFLFlBQW9CO0lBQy9FLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxTQUF3QjtJQUM3RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgaGVscGVyIGZ1bmN0aW9ucyBmb3Igd2F0Y2ggaW50ZWdyYXRpb24gdGVzdHMuXG4gKi9cblxuLyoqXG4gKiBQb2xsIGEgY29uZGl0aW9uIHVudGlsIHdlIHNlZSBpdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9sbChjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgY2hlY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uKCkpIHJldHVybiByZXNvbHZlKCk7XG4gICAgICBzZXRUaW1lb3V0KGNoZWNrLCAxMDAwKTtcbiAgICB9O1xuICAgIGNoZWNrKCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFdhaXQgZm9yIGEgc3BlY2lmaWMgc3RyaW5nIHRvIGFwcGVhciBpbiB0aGUgb3V0cHV0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvck91dHB1dChnZXRPdXRwdXQ6ICgpID0+IHN0cmluZywgc2VhcmNoU3RyaW5nOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHBvbGwoKCkgPT4gZ2V0T3V0cHV0KCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSk7XG59XG5cbi8qKlxuICogV2FpdCBmb3IgYSBjb25kaXRpb24gdG8gYmVjb21lIHRydWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gcG9sbChjb25kaXRpb24pO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/telemetry-integ-tests/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/tests/toolkit-lib-integ-tests/toolkit-deploy-stack-with-multiple-docker-assets.integtest.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
|
+
const toolkit = require("@aws-cdk/toolkit-lib");
|
|
5
|
+
const toolkit_helpers_1 = require("./toolkit-helpers");
|
|
6
|
+
const lib_1 = require("../../lib");
|
|
7
|
+
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
8
|
+
(0, lib_1.integTest)('toolkit deploy stack with multiple docker assets', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
9
|
+
const tk = (0, toolkit_helpers_1.toolkitFromFixture)(fixture);
|
|
10
|
+
const assembly = await (0, toolkit_helpers_1.assemblyFromCdkAppDir)(tk, fixture);
|
|
11
|
+
const stacks = {
|
|
12
|
+
strategy: toolkit.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE,
|
|
13
|
+
patterns: [fixture.fullStackName('multiple-docker-assets')],
|
|
14
|
+
};
|
|
15
|
+
await tk.deploy(assembly, {
|
|
16
|
+
stacks,
|
|
17
|
+
assetParallelism: true,
|
|
18
|
+
assetBuildConcurrency: 3,
|
|
19
|
+
});
|
|
20
|
+
await tk.destroy(assembly, { stacks });
|
|
21
|
+
}));
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1kZXBsb3ktc3RhY2std2l0aC1tdWx0aXBsZS1kb2NrZXItYXNzZXRzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZGVwbG95LXN0YWNrLXdpdGgtbXVsdGlwbGUtZG9ja2VyLWFzc2V0cy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsZ0RBQWdEO0FBQ2hELHVEQUE4RTtBQUM5RSxtQ0FBMEQ7QUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLGtEQUFrRCxFQUNsRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLEVBQUUsR0FBRyxJQUFBLG9DQUFrQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSx1Q0FBcUIsRUFBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFMUQsTUFBTSxNQUFNLEdBQTBCO1FBQ3BDLFFBQVEsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUMseUJBQXlCO1FBQ2xFLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUM1RCxDQUFDO0lBRUYsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUN4QixNQUFNO1FBQ04sZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixxQkFBcUIsRUFBRSxDQUFDO0tBQ3pCLENBQUMsQ0FBQztJQUNILE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCAqIGFzIHRvb2xraXQgZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tQ2RrQXBwRGlyLCB0b29sa2l0RnJvbUZpeHR1cmUgfSBmcm9tICcuL3Rvb2xraXQtaGVscGVycyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ3Rvb2xraXQgZGVwbG95IHN0YWNrIHdpdGggbXVsdGlwbGUgZG9ja2VyIGFzc2V0cycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRrID0gdG9vbGtpdEZyb21GaXh0dXJlKGZpeHR1cmUpO1xuXG4gICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBhc3NlbWJseUZyb21DZGtBcHBEaXIodGssIGZpeHR1cmUpO1xuXG4gICAgY29uc3Qgc3RhY2tzOiB0b29sa2l0LlN0YWNrU2VsZWN0b3IgPSB7XG4gICAgICBzdHJhdGVneTogdG9vbGtpdC5TdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUsXG4gICAgICBwYXR0ZXJuczogW2ZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnbXVsdGlwbGUtZG9ja2VyLWFzc2V0cycpXSxcbiAgICB9O1xuXG4gICAgYXdhaXQgdGsuZGVwbG95KGFzc2VtYmx5LCB7XG4gICAgICBzdGFja3MsXG4gICAgICBhc3NldFBhcmFsbGVsaXNtOiB0cnVlLFxuICAgICAgYXNzZXRCdWlsZENvbmN1cnJlbmN5OiAzLFxuICAgIH0pO1xuICAgIGF3YWl0IHRrLmRlc3Ryb3koYXNzZW1ibHksIHsgc3RhY2tzIH0pO1xuICB9KSxcbik7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
|
+
const toolkit = require("@aws-cdk/toolkit-lib");
|
|
5
|
+
const toolkit_helpers_1 = require("./toolkit-helpers");
|
|
6
|
+
const lib_1 = require("../../lib");
|
|
7
|
+
/**
|
|
8
|
+
* Integration test for toolkit-lib watch with glob pattern matching.
|
|
9
|
+
*
|
|
10
|
+
* These tests verify that the chokidar v4 glob pattern fix does not
|
|
11
|
+
* detects file changes on files that are excluded via config.
|
|
12
|
+
*/
|
|
13
|
+
(0, lib_1.integTest)('toolkit watch excludes node_modules and dotfiles by default', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
14
|
+
const tk = (0, toolkit_helpers_1.toolkitFromFixture)(fixture);
|
|
15
|
+
const assembly = await (0, toolkit_helpers_1.assemblyFromCdkAppDir)(tk, fixture);
|
|
16
|
+
// Track the exclude patterns that were configured
|
|
17
|
+
const configMessages = [];
|
|
18
|
+
// Create a custom IoHost to capture configuration messages
|
|
19
|
+
const customTk = new toolkit.Toolkit({
|
|
20
|
+
ioHost: {
|
|
21
|
+
notify: async (msg) => {
|
|
22
|
+
if (msg.code === 'CDK_TOOLKIT_I5310') {
|
|
23
|
+
configMessages.push(msg.message);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
requestResponse: async () => undefined,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
// Start watching with default exclude patterns
|
|
30
|
+
const watcher = await customTk.watch(assembly, {
|
|
31
|
+
include: ['**'],
|
|
32
|
+
watchDir: fixture.integTestDir,
|
|
33
|
+
deploymentMethod: { method: 'hotswap' },
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
// Wait for initialization
|
|
37
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
38
|
+
// Verify that default excludes are applied
|
|
39
|
+
const configMsg = configMessages.find(m => m.includes("'exclude' patterns"));
|
|
40
|
+
expect(configMsg).toBeDefined();
|
|
41
|
+
// Check that default excludes are present
|
|
42
|
+
expect(configMsg).toContain('node_modules');
|
|
43
|
+
expect(configMsg).toContain('.*');
|
|
44
|
+
fixture.log('✓ Toolkit watch applies default exclude patterns correctly');
|
|
45
|
+
fixture.log(` Config: ${configMsg.substring(0, 200)}...`);
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
await watcher.dispose();
|
|
49
|
+
await new Promise(resolve => setTimeout(resolve, 1000)); // Allow async operations to complete
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC13YXRjaC1nbG9iLW5lZ2F0aXZlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtd2F0Y2gtZ2xvYi1uZWdhdGl2ZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsZ0RBQWdEO0FBQ2hELHVEQUE4RTtBQUM5RSxtQ0FBMEQ7QUFFMUQ7Ozs7O0dBS0c7QUFFSCxJQUFBLGVBQVMsRUFDUCw2REFBNkQsRUFDN0QsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEdBQUcsSUFBQSxvQ0FBa0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsdUNBQXFCLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTFELGtEQUFrRDtJQUNsRCxNQUFNLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFFcEMsMkRBQTJEO0lBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUNwQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztvQkFDckMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO1lBQ0QsZUFBZSxFQUFFLEtBQUssSUFBbUIsRUFBRSxDQUFDLFNBQXlCO1NBQ3RFO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsK0NBQStDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDN0MsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2YsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1FBQzlCLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtLQUN4QyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUM7UUFDSCwwQkFBMEI7UUFDMUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV2RCwyQ0FBMkM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQywwQ0FBMEM7UUFDMUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNERBQTRELENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsU0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztJQUNoRyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0ICogYXMgdG9vbGtpdCBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBhc3NlbWJseUZyb21DZGtBcHBEaXIsIHRvb2xraXRGcm9tRml4dHVyZSB9IGZyb20gJy4vdG9vbGtpdC1oZWxwZXJzJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbGliJztcblxuLyoqXG4gKiBJbnRlZ3JhdGlvbiB0ZXN0IGZvciB0b29sa2l0LWxpYiB3YXRjaCB3aXRoIGdsb2IgcGF0dGVybiBtYXRjaGluZy5cbiAqXG4gKiBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgY2hva2lkYXIgdjQgZ2xvYiBwYXR0ZXJuIGZpeCBkb2VzIG5vdFxuICogZGV0ZWN0cyBmaWxlIGNoYW5nZXMgb24gZmlsZXMgdGhhdCBhcmUgZXhjbHVkZWQgdmlhIGNvbmZpZy5cbiAqL1xuXG5pbnRlZ1Rlc3QoXG4gICd0b29sa2l0IHdhdGNoIGV4Y2x1ZGVzIG5vZGVfbW9kdWxlcyBhbmQgZG90ZmlsZXMgYnkgZGVmYXVsdCcsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRrID0gdG9vbGtpdEZyb21GaXh0dXJlKGZpeHR1cmUpO1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gYXdhaXQgYXNzZW1ibHlGcm9tQ2RrQXBwRGlyKHRrLCBmaXh0dXJlKTtcblxuICAgIC8vIFRyYWNrIHRoZSBleGNsdWRlIHBhdHRlcm5zIHRoYXQgd2VyZSBjb25maWd1cmVkXG4gICAgY29uc3QgY29uZmlnTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBDcmVhdGUgYSBjdXN0b20gSW9Ib3N0IHRvIGNhcHR1cmUgY29uZmlndXJhdGlvbiBtZXNzYWdlc1xuICAgIGNvbnN0IGN1c3RvbVRrID0gbmV3IHRvb2xraXQuVG9vbGtpdCh7XG4gICAgICBpb0hvc3Q6IHtcbiAgICAgICAgbm90aWZ5OiBhc3luYyAobXNnKSA9PiB7XG4gICAgICAgICAgaWYgKG1zZy5jb2RlID09PSAnQ0RLX1RPT0xLSVRfSTUzMTAnKSB7XG4gICAgICAgICAgICBjb25maWdNZXNzYWdlcy5wdXNoKG1zZy5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVlc3RSZXNwb25zZTogYXN5bmMgPFQ+KCk6IFByb21pc2U8VD4gPT4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgVCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBTdGFydCB3YXRjaGluZyB3aXRoIGRlZmF1bHQgZXhjbHVkZSBwYXR0ZXJuc1xuICAgIGNvbnN0IHdhdGNoZXIgPSBhd2FpdCBjdXN0b21Uay53YXRjaChhc3NlbWJseSwge1xuICAgICAgaW5jbHVkZTogWycqKiddLFxuICAgICAgd2F0Y2hEaXI6IGZpeHR1cmUuaW50ZWdUZXN0RGlyLFxuICAgICAgZGVwbG95bWVudE1ldGhvZDogeyBtZXRob2Q6ICdob3Rzd2FwJyB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdhaXQgZm9yIGluaXRpYWxpemF0aW9uXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGF0IGRlZmF1bHQgZXhjbHVkZXMgYXJlIGFwcGxpZWRcbiAgICAgIGNvbnN0IGNvbmZpZ01zZyA9IGNvbmZpZ01lc3NhZ2VzLmZpbmQobSA9PiBtLmluY2x1ZGVzKFwiJ2V4Y2x1ZGUnIHBhdHRlcm5zXCIpKTtcbiAgICAgIGV4cGVjdChjb25maWdNc2cpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIENoZWNrIHRoYXQgZGVmYXVsdCBleGNsdWRlcyBhcmUgcHJlc2VudFxuICAgICAgZXhwZWN0KGNvbmZpZ01zZykudG9Db250YWluKCdub2RlX21vZHVsZXMnKTtcbiAgICAgIGV4cGVjdChjb25maWdNc2cpLnRvQ29udGFpbignLionKTtcblxuICAgICAgZml4dHVyZS5sb2coJ+KckyBUb29sa2l0IHdhdGNoIGFwcGxpZXMgZGVmYXVsdCBleGNsdWRlIHBhdHRlcm5zIGNvcnJlY3RseScpO1xuICAgICAgZml4dHVyZS5sb2coYCAgQ29uZmlnOiAke2NvbmZpZ01zZyEuc3Vic3RyaW5nKDAsIDIwMCl9Li4uYCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHdhdGNoZXIuZGlzcG9zZSgpO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsgLy8gQWxsb3cgYXN5bmMgb3BlcmF0aW9ucyB0byBjb21wbGV0ZVxuICAgIH1cbiAgfSksXG4pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const toolkit = require("@aws-cdk/toolkit-lib");
|
|
7
|
+
const toolkit_helpers_1 = require("./toolkit-helpers");
|
|
8
|
+
const lib_1 = require("../../lib");
|
|
9
|
+
/**
|
|
10
|
+
* Integration test for toolkit-lib watch with glob pattern matching.
|
|
11
|
+
*
|
|
12
|
+
* These tests verify that the chokidar v4 glob pattern fix detects file changes.
|
|
13
|
+
*/
|
|
14
|
+
(0, lib_1.integTest)('toolkit watch detects file changes with glob patterns', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
15
|
+
const tk = (0, toolkit_helpers_1.toolkitFromFixture)(fixture);
|
|
16
|
+
const assembly = await (0, toolkit_helpers_1.assemblyFromCdkAppDir)(tk, fixture);
|
|
17
|
+
// Track events received from the watcher
|
|
18
|
+
const receivedEvents = [];
|
|
19
|
+
// Create a custom IoHost to capture watch events
|
|
20
|
+
const customTk = new toolkit.Toolkit({
|
|
21
|
+
ioHost: {
|
|
22
|
+
notify: async (msg) => {
|
|
23
|
+
receivedEvents.push({ code: msg.code, message: msg.message });
|
|
24
|
+
},
|
|
25
|
+
requestResponse: async () => undefined,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
// Create a test file in the watch directory
|
|
29
|
+
const testFile = path.join(fixture.integTestDir, 'watch-test-file.ts');
|
|
30
|
+
// Start watching with specific include patterns
|
|
31
|
+
const watcher = await customTk.watch(assembly, {
|
|
32
|
+
include: ['**/*.ts'],
|
|
33
|
+
exclude: ['**/node_modules/**', '**/*.test.ts'],
|
|
34
|
+
watchDir: fixture.integTestDir,
|
|
35
|
+
// Use a deployment method that won't actually deploy (we just want to test file watching)
|
|
36
|
+
deploymentMethod: { method: 'hotswap' },
|
|
37
|
+
});
|
|
38
|
+
try {
|
|
39
|
+
// Wait a bit for the watcher to initialize
|
|
40
|
+
await (0, lib_1.sleep)(1000);
|
|
41
|
+
// Create a new .ts file - this should be detected
|
|
42
|
+
fs.writeFileSync(testFile, 'export const watchTest = true;');
|
|
43
|
+
// Wait for the file change to be detected
|
|
44
|
+
await (0, lib_1.sleep)(2000);
|
|
45
|
+
// Verify that the watcher detected the file
|
|
46
|
+
const observingEvents = receivedEvents.filter(e => e.code === 'CDK_TOOLKIT_I5311' || // observing file
|
|
47
|
+
e.code === 'CDK_TOOLKIT_I5312' || // detected change
|
|
48
|
+
e.code === 'CDK_TOOLKIT_I5314');
|
|
49
|
+
fixture.log(`Received ${observingEvents.length} watch-related events`);
|
|
50
|
+
for (const event of observingEvents) {
|
|
51
|
+
fixture.log(` ${event.code}: ${event.message.substring(0, 100)}...`);
|
|
52
|
+
}
|
|
53
|
+
// The watcher should have received the ready event and started observing
|
|
54
|
+
const hasReadyOrObserving = receivedEvents.some(e => e.code === 'CDK_TOOLKIT_I5314' || // triggering initial deploy
|
|
55
|
+
e.code === 'CDK_TOOLKIT_I5311');
|
|
56
|
+
expect(hasReadyOrObserving).toBe(true);
|
|
57
|
+
fixture.log('✓ Toolkit watch successfully initialized and detected files');
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
// Clean up - dispose and wait for async operations to settle
|
|
61
|
+
await watcher.dispose();
|
|
62
|
+
await (0, lib_1.sleep)(1000); // Allow async operations to complete
|
|
63
|
+
if (fs.existsSync(testFile)) {
|
|
64
|
+
fs.unlinkSync(testFile);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC13YXRjaC1nbG9iLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtd2F0Y2gtZ2xvYi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixnREFBZ0Q7QUFDaEQsdURBQThFO0FBQzlFLG1DQUFpRTtBQUVqRTs7OztHQUlHO0FBRUgsSUFBQSxlQUFTLEVBQ1AsdURBQXVELEVBQ3ZELElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sRUFBRSxHQUFHLElBQUEsb0NBQWtCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHVDQUFxQixFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCx5Q0FBeUM7SUFDekMsTUFBTSxjQUFjLEdBQXlELEVBQUUsQ0FBQztJQUVoRixpREFBaUQ7SUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ25DLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ3BCLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELGVBQWUsRUFBRSxLQUFLLElBQW1CLEVBQUUsQ0FBQyxTQUF5QjtTQUN0RTtLQUNGLENBQUMsQ0FBQztJQUVILDRDQUE0QztJQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUV2RSxnREFBZ0Q7SUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtRQUM3QyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDcEIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDO1FBQy9DLFFBQVEsRUFBRSxPQUFPLENBQUMsWUFBWTtRQUM5QiwwRkFBMEY7UUFDMUYsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0tBQ3hDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQztRQUNILDJDQUEyQztRQUMzQyxNQUFNLElBQUEsV0FBSyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxCLGtEQUFrRDtRQUNsRCxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTdELDBDQUEwQztRQUMxQyxNQUFNLElBQUEsV0FBSyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxCLDRDQUE0QztRQUM1QyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2hELENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksaUJBQWlCO1lBQ25ELENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksa0JBQWtCO1lBQ3BELENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQy9CLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksZUFBZSxDQUFDLE1BQU0sdUJBQXVCLENBQUMsQ0FBQztRQUN2RSxLQUFLLE1BQU0sS0FBSyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDbEQsQ0FBQyxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSw0QkFBNEI7WUFDOUQsQ0FBQyxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FDL0IsQ0FBQztRQUNGLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDN0UsQ0FBQztZQUFTLENBQUM7UUFDVCw2REFBNkQ7UUFDN0QsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFBLFdBQUssRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztRQUN4RCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1QixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRvb2xraXQgZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tQ2RrQXBwRGlyLCB0b29sa2l0RnJvbUZpeHR1cmUgfSBmcm9tICcuL3Rvb2xraXQtaGVscGVycyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSwgc2xlZXAgfSBmcm9tICcuLi8uLi9saWInO1xuXG4vKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIHRvb2xraXQtbGliIHdhdGNoIHdpdGggZ2xvYiBwYXR0ZXJuIG1hdGNoaW5nLlxuICpcbiAqIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBjaG9raWRhciB2NCBnbG9iIHBhdHRlcm4gZml4IGRldGVjdHMgZmlsZSBjaGFuZ2VzLlxuICovXG5cbmludGVnVGVzdChcbiAgJ3Rvb2xraXQgd2F0Y2ggZGV0ZWN0cyBmaWxlIGNoYW5nZXMgd2l0aCBnbG9iIHBhdHRlcm5zJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGsgPSB0b29sa2l0RnJvbUZpeHR1cmUoZml4dHVyZSk7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBhc3NlbWJseUZyb21DZGtBcHBEaXIodGssIGZpeHR1cmUpO1xuXG4gICAgLy8gVHJhY2sgZXZlbnRzIHJlY2VpdmVkIGZyb20gdGhlIHdhdGNoZXJcbiAgICBjb25zdCByZWNlaXZlZEV2ZW50czogQXJyYXk8eyBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7IG1lc3NhZ2U6IHN0cmluZyB9PiA9IFtdO1xuXG4gICAgLy8gQ3JlYXRlIGEgY3VzdG9tIElvSG9zdCB0byBjYXB0dXJlIHdhdGNoIGV2ZW50c1xuICAgIGNvbnN0IGN1c3RvbVRrID0gbmV3IHRvb2xraXQuVG9vbGtpdCh7XG4gICAgICBpb0hvc3Q6IHtcbiAgICAgICAgbm90aWZ5OiBhc3luYyAobXNnKSA9PiB7XG4gICAgICAgICAgcmVjZWl2ZWRFdmVudHMucHVzaCh7IGNvZGU6IG1zZy5jb2RlLCBtZXNzYWdlOiBtc2cubWVzc2FnZSB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWVzdFJlc3BvbnNlOiBhc3luYyA8VD4oKTogUHJvbWlzZTxUPiA9PiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBULFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHRlc3QgZmlsZSBpbiB0aGUgd2F0Y2ggZGlyZWN0b3J5XG4gICAgY29uc3QgdGVzdEZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd3YXRjaC10ZXN0LWZpbGUudHMnKTtcblxuICAgIC8vIFN0YXJ0IHdhdGNoaW5nIHdpdGggc3BlY2lmaWMgaW5jbHVkZSBwYXR0ZXJuc1xuICAgIGNvbnN0IHdhdGNoZXIgPSBhd2FpdCBjdXN0b21Uay53YXRjaChhc3NlbWJseSwge1xuICAgICAgaW5jbHVkZTogWycqKi8qLnRzJ10sXG4gICAgICBleGNsdWRlOiBbJyoqL25vZGVfbW9kdWxlcy8qKicsICcqKi8qLnRlc3QudHMnXSxcbiAgICAgIHdhdGNoRGlyOiBmaXh0dXJlLmludGVnVGVzdERpcixcbiAgICAgIC8vIFVzZSBhIGRlcGxveW1lbnQgbWV0aG9kIHRoYXQgd29uJ3QgYWN0dWFsbHkgZGVwbG95ICh3ZSBqdXN0IHdhbnQgdG8gdGVzdCBmaWxlIHdhdGNoaW5nKVxuICAgICAgZGVwbG95bWVudE1ldGhvZDogeyBtZXRob2Q6ICdob3Rzd2FwJyB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdhaXQgYSBiaXQgZm9yIHRoZSB3YXRjaGVyIHRvIGluaXRpYWxpemVcbiAgICAgIGF3YWl0IHNsZWVwKDEwMDApO1xuXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgLnRzIGZpbGUgLSB0aGlzIHNob3VsZCBiZSBkZXRlY3RlZFxuICAgICAgZnMud3JpdGVGaWxlU3luYyh0ZXN0RmlsZSwgJ2V4cG9ydCBjb25zdCB3YXRjaFRlc3QgPSB0cnVlOycpO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgZmlsZSBjaGFuZ2UgdG8gYmUgZGV0ZWN0ZWRcbiAgICAgIGF3YWl0IHNsZWVwKDIwMDApO1xuXG4gICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgd2F0Y2hlciBkZXRlY3RlZCB0aGUgZmlsZVxuICAgICAgY29uc3Qgb2JzZXJ2aW5nRXZlbnRzID0gcmVjZWl2ZWRFdmVudHMuZmlsdGVyKGUgPT5cbiAgICAgICAgZS5jb2RlID09PSAnQ0RLX1RPT0xLSVRfSTUzMTEnIHx8IC8vIG9ic2VydmluZyBmaWxlXG4gICAgICAgIGUuY29kZSA9PT0gJ0NES19UT09MS0lUX0k1MzEyJyB8fCAvLyBkZXRlY3RlZCBjaGFuZ2VcbiAgICAgICAgZS5jb2RlID09PSAnQ0RLX1RPT0xLSVRfSTUzMTQnLCAvLyB0cmlnZ2VyaW5nIGRlcGxveVxuICAgICAgKTtcblxuICAgICAgZml4dHVyZS5sb2coYFJlY2VpdmVkICR7b2JzZXJ2aW5nRXZlbnRzLmxlbmd0aH0gd2F0Y2gtcmVsYXRlZCBldmVudHNgKTtcbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2Ygb2JzZXJ2aW5nRXZlbnRzKSB7XG4gICAgICAgIGZpeHR1cmUubG9nKGAgICR7ZXZlbnQuY29kZX06ICR7ZXZlbnQubWVzc2FnZS5zdWJzdHJpbmcoMCwgMTAwKX0uLi5gKTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIHdhdGNoZXIgc2hvdWxkIGhhdmUgcmVjZWl2ZWQgdGhlIHJlYWR5IGV2ZW50IGFuZCBzdGFydGVkIG9ic2VydmluZ1xuICAgICAgY29uc3QgaGFzUmVhZHlPck9ic2VydmluZyA9IHJlY2VpdmVkRXZlbnRzLnNvbWUoZSA9PlxuICAgICAgICBlLmNvZGUgPT09ICdDREtfVE9PTEtJVF9JNTMxNCcgfHwgLy8gdHJpZ2dlcmluZyBpbml0aWFsIGRlcGxveVxuICAgICAgICBlLmNvZGUgPT09ICdDREtfVE9PTEtJVF9JNTMxMScsIC8vIG9ic2VydmluZyBmaWxlc1xuICAgICAgKTtcbiAgICAgIGV4cGVjdChoYXNSZWFkeU9yT2JzZXJ2aW5nKS50b0JlKHRydWUpO1xuXG4gICAgICBmaXh0dXJlLmxvZygn4pyTIFRvb2xraXQgd2F0Y2ggc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIGFuZCBkZXRlY3RlZCBmaWxlcycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBDbGVhbiB1cCAtIGRpc3Bvc2UgYW5kIHdhaXQgZm9yIGFzeW5jIG9wZXJhdGlvbnMgdG8gc2V0dGxlXG4gICAgICBhd2FpdCB3YXRjaGVyLmRpc3Bvc2UoKTtcbiAgICAgIGF3YWl0IHNsZWVwKDEwMDApOyAvLyBBbGxvdyBhc3luYyBvcGVyYXRpb25zIHRvIGNvbXBsZXRlXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyh0ZXN0RmlsZSkpIHtcbiAgICAgICAgZnMudW5saW5rU3luYyh0ZXN0RmlsZSk7XG4gICAgICB9XG4gICAgfVxuICB9KSxcbik7XG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const lib_1 = require("../../../lib");
|
|
4
|
-
(0, lib_1.integTest)('cdk refactor - detects refactoring changes and prints the result', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
5
|
-
// First, deploy the stacks
|
|
6
|
-
await fixture.cdkDeploy('bucket-stack');
|
|
7
|
-
await fixture.cdkDeploy('basic', {
|
|
8
|
-
modEnv: {
|
|
9
|
-
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
// Then see if the refactoring tool detects the change
|
|
13
|
-
const stdErr = await fixture.cdkRefactor({
|
|
14
|
-
options: ['--dry-run', '--unstable=refactor'],
|
|
15
|
-
allowErrExit: true,
|
|
16
|
-
// Making sure the synthesized stack has a queue with
|
|
17
|
-
// the new name so that a refactor is detected
|
|
18
|
-
modEnv: {
|
|
19
|
-
BASIC_QUEUE_LOGICAL_ID: 'NewName',
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
expect(stdErr).toContain('The following resources were moved or renamed:');
|
|
23
|
-
expect(removeColor(stdErr)).toMatch(/│ AWS::SQS::Queue │ .*\/OldName\/Resource │ .*\/NewName\/Resource │/);
|
|
24
|
-
}));
|
|
25
|
-
(0, lib_1.integTest)('cdk refactor - no refactoring changes detected', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
26
|
-
const modEnv = {
|
|
27
|
-
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
28
|
-
};
|
|
29
|
-
// First, deploy the stacks
|
|
30
|
-
await fixture.cdkDeploy('bucket-stack');
|
|
31
|
-
await fixture.cdkDeploy('basic', { modEnv });
|
|
32
|
-
// Then see if the refactoring tool detects the change
|
|
33
|
-
const stdErr = await fixture.cdkRefactor({
|
|
34
|
-
options: ['--dry-run', '--unstable=refactor'],
|
|
35
|
-
allowErrExit: true,
|
|
36
|
-
modEnv,
|
|
37
|
-
});
|
|
38
|
-
expect(stdErr).toContain('Nothing to refactor');
|
|
39
|
-
}));
|
|
40
|
-
(0, lib_1.integTest)('cdk refactor - filters stacks by pattern', (0, lib_1.withSpecificFixture)('refactoring-multiple-envs', async (fixture) => {
|
|
41
|
-
// First, deploy the stacks
|
|
42
|
-
await fixture.cdkDeploy('gamma-stack', {
|
|
43
|
-
modEnv: {
|
|
44
|
-
BUCKET_ID: 'OldName',
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
await fixture.cdkDeploy('prod-stack', {
|
|
48
|
-
modEnv: {
|
|
49
|
-
BUCKET_ID: 'OldName',
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
// Then see if the refactoring tool detects the change
|
|
53
|
-
const stdErr = await fixture.cdkRefactor({
|
|
54
|
-
options: ['*-gamma-stack', '--dry-run', '--unstable=refactor'],
|
|
55
|
-
allowErrExit: true,
|
|
56
|
-
captureStderr: true,
|
|
57
|
-
// Making sure the synthesized stack has a queue with
|
|
58
|
-
// the new name so that a refactor is detected
|
|
59
|
-
modEnv: {
|
|
60
|
-
BUCKET_ID: 'NewName',
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
const numberOfEnvironments = (stdErr.match(/Resource Type/g) || []).length;
|
|
64
|
-
expect(numberOfEnvironments).toEqual(1);
|
|
65
|
-
}));
|
|
66
|
-
function removeColor(str) {
|
|
67
|
-
return str.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, '');
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXJlZmFjdG9yLWRyeS1ydW4uaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXJlZmFjdG9yLWRyeS1ydW4uaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBRTlELElBQUEsZUFBUyxFQUNQLGtFQUFrRSxFQUNsRSxJQUFBLHlCQUFtQixFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkQsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQy9CLE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxzREFBc0Q7SUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztRQUM3QyxZQUFZLEVBQUUsSUFBSTtRQUNsQixxREFBcUQ7UUFDckQsOENBQThDO1FBQzlDLE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDM0UsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCxnREFBZ0QsRUFDaEQsSUFBQSx5QkFBbUIsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHO1FBQ2Isc0JBQXNCLEVBQUUsU0FBUztLQUNsQyxDQUFDO0lBRUYsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUU3QyxzREFBc0Q7SUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztRQUM3QyxZQUFZLEVBQUUsSUFBSTtRQUNsQixNQUFNO0tBQ1AsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCwwQ0FBMEMsRUFDMUMsSUFBQSx5QkFBbUIsRUFBQywyQkFBMkIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDakUsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7UUFDckMsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLFNBQVM7U0FDckI7S0FDRixDQUFDLENBQUM7SUFDSCxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1FBQ3BDLE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxTQUFTO1NBQ3JCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsc0RBQXNEO0lBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixDQUFDO1FBQzlELFlBQVksRUFBRSxJQUFJO1FBQ2xCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLHFEQUFxRDtRQUNyRCw4Q0FBOEM7UUFDOUMsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLFNBQVM7U0FDckI7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUVGLFNBQVMsV0FBVyxDQUFDLEdBQVc7SUFDOUIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgcmVmYWN0b3IgLSBkZXRlY3RzIHJlZmFjdG9yaW5nIGNoYW5nZXMgYW5kIHByaW50cyB0aGUgcmVzdWx0JyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgncmVmYWN0b3JpbmcnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIEZpcnN0LCBkZXBsb3kgdGhlIHN0YWNrc1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdidWNrZXQtc3RhY2snKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnYmFzaWMnLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQkFTSUNfUVVFVUVfTE9HSUNBTF9JRDogJ09sZE5hbWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFRoZW4gc2VlIGlmIHRoZSByZWZhY3RvcmluZyB0b29sIGRldGVjdHMgdGhlIGNoYW5nZVxuICAgIGNvbnN0IHN0ZEVyciA9IGF3YWl0IGZpeHR1cmUuY2RrUmVmYWN0b3Ioe1xuICAgICAgb3B0aW9uczogWyctLWRyeS1ydW4nLCAnLS11bnN0YWJsZT1yZWZhY3RvciddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgICAgLy8gTWFraW5nIHN1cmUgdGhlIHN5bnRoZXNpemVkIHN0YWNrIGhhcyBhIHF1ZXVlIHdpdGhcbiAgICAgIC8vIHRoZSBuZXcgbmFtZSBzbyB0aGF0IGEgcmVmYWN0b3IgaXMgZGV0ZWN0ZWRcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBCQVNJQ19RVUVVRV9MT0dJQ0FMX0lEOiAnTmV3TmFtZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0ZEVycikudG9Db250YWluKCdUaGUgZm9sbG93aW5nIHJlc291cmNlcyB3ZXJlIG1vdmVkIG9yIHJlbmFtZWQ6Jyk7XG4gICAgZXhwZWN0KHJlbW92ZUNvbG9yKHN0ZEVycikpLnRvTWF0Y2goL+KUgiBBV1M6OlNRUzo6UXVldWUg4pSCIC4qXFwvT2xkTmFtZVxcL1Jlc291cmNlIOKUgiAuKlxcL05ld05hbWVcXC9SZXNvdXJjZSDilIIvKTtcbiAgfSksXG4pO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgcmVmYWN0b3IgLSBubyByZWZhY3RvcmluZyBjaGFuZ2VzIGRldGVjdGVkJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgncmVmYWN0b3JpbmcnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IG1vZEVudiA9IHtcbiAgICAgIEJBU0lDX1FVRVVFX0xPR0lDQUxfSUQ6ICdPbGROYW1lJyxcbiAgICB9O1xuXG4gICAgLy8gRmlyc3QsIGRlcGxveSB0aGUgc3RhY2tzXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2J1Y2tldC1zdGFjaycpO1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdiYXNpYycsIHsgbW9kRW52IH0pO1xuXG4gICAgLy8gVGhlbiBzZWUgaWYgdGhlIHJlZmFjdG9yaW5nIHRvb2wgZGV0ZWN0cyB0aGUgY2hhbmdlXG4gICAgY29uc3Qgc3RkRXJyID0gYXdhaXQgZml4dHVyZS5jZGtSZWZhY3Rvcih7XG4gICAgICBvcHRpb25zOiBbJy0tZHJ5LXJ1bicsICctLXVuc3RhYmxlPXJlZmFjdG9yJ10sXG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICBtb2RFbnYsXG4gICAgfSk7XG5cbiAgICBleHBlY3Qoc3RkRXJyKS50b0NvbnRhaW4oJ05vdGhpbmcgdG8gcmVmYWN0b3InKTtcbiAgfSksXG4pO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgcmVmYWN0b3IgLSBmaWx0ZXJzIHN0YWNrcyBieSBwYXR0ZXJuJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgncmVmYWN0b3JpbmctbXVsdGlwbGUtZW52cycsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRmlyc3QsIGRlcGxveSB0aGUgc3RhY2tzXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2dhbW1hLXN0YWNrJywge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIEJVQ0tFVF9JRDogJ09sZE5hbWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgncHJvZC1zdGFjaycsIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBCVUNLRVRfSUQ6ICdPbGROYW1lJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGVuIHNlZSBpZiB0aGUgcmVmYWN0b3JpbmcgdG9vbCBkZXRlY3RzIHRoZSBjaGFuZ2VcbiAgICBjb25zdCBzdGRFcnIgPSBhd2FpdCBmaXh0dXJlLmNka1JlZmFjdG9yKHtcbiAgICAgIG9wdGlvbnM6IFsnKi1nYW1tYS1zdGFjaycsICctLWRyeS1ydW4nLCAnLS11bnN0YWJsZT1yZWZhY3RvciddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgIC8vIE1ha2luZyBzdXJlIHRoZSBzeW50aGVzaXplZCBzdGFjayBoYXMgYSBxdWV1ZSB3aXRoXG4gICAgICAvLyB0aGUgbmV3IG5hbWUgc28gdGhhdCBhIHJlZmFjdG9yIGlzIGRldGVjdGVkXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQlVDS0VUX0lEOiAnTmV3TmFtZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbnVtYmVyT2ZFbnZpcm9ubWVudHMgPSAoc3RkRXJyLm1hdGNoKC9SZXNvdXJjZSBUeXBlL2cpIHx8IFtdKS5sZW5ndGg7XG4gICAgZXhwZWN0KG51bWJlck9mRW52aXJvbm1lbnRzKS50b0VxdWFsKDEpO1xuICB9KSxcbik7XG5cbmZ1bmN0aW9uIHJlbW92ZUNvbG9yKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHgxQltbKD8pO117MCwyfSg7P1xcZCkqLi9nLCAnJyk7XG59XG5cbiJdfQ==
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|