UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

44 lines 6.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_iam_1 = require("@aws-sdk/client-iam"); const lib_1 = require("../../../lib"); (0, lib_1.integTest)('import-existing-resources error message includes construct paths', (0, lib_1.withSpecificFixture)('import-existing-resources-app', async (fixture) => { const roleName = `${fixture.stackNamePrefix}-import-role`; try { // Step 1: Deploy with RETAIN so the role exists and can survive stack deletion await fixture.cdkDeploy('import-existing', { modEnv: { REMOVAL_POLICY: 'retain' }, }); // Step 2: Delete the stack — the role survives because of RETAIN await fixture.cdkDestroy('import-existing', { modEnv: { REMOVAL_POLICY: 'retain' }, }); // Step 3: Re-deploy with DESTROY (no retain) and --import-existing-resources // This should fail because CloudFormation requires DeletionPolicy=Retain for import const stdErr = await fixture.cdkDeploy('import-existing', { modEnv: { REMOVAL_POLICY: 'destroy' }, options: ['--import-existing-resources'], allowErrExit: true, }); // This error text is word-wrapped, only check presence of individual words expect(stdErr).toContain('DeletionPolicy'); expect(stdErr).toContain('MyRole'); expect(stdErr).toContain('RemovalPolicy.RETAIN'); expect(stdErr).toContain('https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources-removal'); // Step 4: Deploy with RETAIN and --import-existing-resources — this should succeed await fixture.cdkDeploy('import-existing', { modEnv: { REMOVAL_POLICY: 'retain' }, options: ['--import-existing-resources'], }); } finally { // Clean up: delete the role if it was retained try { await fixture.aws.iam.send(new client_iam_1.DeleteRoleCommand({ RoleName: roleName })); } catch { // Role may already be deleted } } })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMtZXJyb3ItbWVzc2FnZS1pbmNsdWRlcy1jb25zdHJ1Y3QtcGF0aHMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMtZXJyb3ItbWVzc2FnZS1pbmNsdWRlcy1jb25zdHJ1Y3QtcGF0aHMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0RBQXdEO0FBQ3hELHNDQUE4RDtBQUU5RCxJQUFBLGVBQVMsRUFDUCxrRUFBa0UsRUFDbEUsSUFBQSx5QkFBbUIsRUFBQywrQkFBK0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDckUsTUFBTSxRQUFRLEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxjQUFjLENBQUM7SUFFMUQsSUFBSSxDQUFDO1FBQ0gsK0VBQStFO1FBQy9FLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QyxNQUFNLEVBQUUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFO1NBQ3JDLENBQUMsQ0FBQztRQUVILGlFQUFpRTtRQUNqRSxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUU7WUFDMUMsTUFBTSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRTtTQUNyQyxDQUFDLENBQUM7UUFFSCw2RUFBNkU7UUFDN0Usb0ZBQW9GO1FBQ3BGLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN4RCxNQUFNLEVBQUUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO1lBQ3hDLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUVILDJFQUEyRTtRQUMzRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1FBRXRHLG1GQUFtRjtRQUNuRixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUU7WUFDekMsTUFBTSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRTtZQUNwQyxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO1lBQVMsQ0FBQztRQUNULCtDQUErQztRQUMvQyxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLDhCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsOEJBQThCO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlbGV0ZVJvbGVDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWlhbSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdpbXBvcnQtZXhpc3RpbmctcmVzb3VyY2VzIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgY29uc3RydWN0IHBhdGhzJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgnaW1wb3J0LWV4aXN0aW5nLXJlc291cmNlcy1hcHAnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHJvbGVOYW1lID0gYCR7Zml4dHVyZS5zdGFja05hbWVQcmVmaXh9LWltcG9ydC1yb2xlYDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBTdGVwIDE6IERlcGxveSB3aXRoIFJFVEFJTiBzbyB0aGUgcm9sZSBleGlzdHMgYW5kIGNhbiBzdXJ2aXZlIHN0YWNrIGRlbGV0aW9uXG4gICAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnaW1wb3J0LWV4aXN0aW5nJywge1xuICAgICAgICBtb2RFbnY6IHsgUkVNT1ZBTF9QT0xJQ1k6ICdyZXRhaW4nIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gU3RlcCAyOiBEZWxldGUgdGhlIHN0YWNrIOKAlCB0aGUgcm9sZSBzdXJ2aXZlcyBiZWNhdXNlIG9mIFJFVEFJTlxuICAgICAgYXdhaXQgZml4dHVyZS5jZGtEZXN0cm95KCdpbXBvcnQtZXhpc3RpbmcnLCB7XG4gICAgICAgIG1vZEVudjogeyBSRU1PVkFMX1BPTElDWTogJ3JldGFpbicgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdGVwIDM6IFJlLWRlcGxveSB3aXRoIERFU1RST1kgKG5vIHJldGFpbikgYW5kIC0taW1wb3J0LWV4aXN0aW5nLXJlc291cmNlc1xuICAgICAgLy8gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIENsb3VkRm9ybWF0aW9uIHJlcXVpcmVzIERlbGV0aW9uUG9saWN5PVJldGFpbiBmb3IgaW1wb3J0XG4gICAgICBjb25zdCBzdGRFcnIgPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnaW1wb3J0LWV4aXN0aW5nJywge1xuICAgICAgICBtb2RFbnY6IHsgUkVNT1ZBTF9QT0xJQ1k6ICdkZXN0cm95JyB9LFxuICAgICAgICBvcHRpb25zOiBbJy0taW1wb3J0LWV4aXN0aW5nLXJlc291cmNlcyddLFxuICAgICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gVGhpcyBlcnJvciB0ZXh0IGlzIHdvcmQtd3JhcHBlZCwgb25seSBjaGVjayBwcmVzZW5jZSBvZiBpbmRpdmlkdWFsIHdvcmRzXG4gICAgICBleHBlY3Qoc3RkRXJyKS50b0NvbnRhaW4oJ0RlbGV0aW9uUG9saWN5Jyk7XG4gICAgICBleHBlY3Qoc3RkRXJyKS50b0NvbnRhaW4oJ015Um9sZScpO1xuICAgICAgZXhwZWN0KHN0ZEVycikudG9Db250YWluKCdSZW1vdmFsUG9saWN5LlJFVEFJTicpO1xuICAgICAgZXhwZWN0KHN0ZEVycikudG9Db250YWluKCdodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL3YyL2d1aWRlL3Jlc291cmNlcy5odG1sI3Jlc291cmNlcy1yZW1vdmFsJyk7XG5cbiAgICAgIC8vIFN0ZXAgNDogRGVwbG95IHdpdGggUkVUQUlOIGFuZCAtLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMg4oCUIHRoaXMgc2hvdWxkIHN1Y2NlZWRcbiAgICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdpbXBvcnQtZXhpc3RpbmcnLCB7XG4gICAgICAgIG1vZEVudjogeyBSRU1PVkFMX1BPTElDWTogJ3JldGFpbicgfSxcbiAgICAgICAgb3B0aW9uczogWyctLWltcG9ydC1leGlzdGluZy1yZXNvdXJjZXMnXSxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBDbGVhbiB1cDogZGVsZXRlIHRoZSByb2xlIGlmIGl0IHdhcyByZXRhaW5lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZml4dHVyZS5hd3MuaWFtLnNlbmQobmV3IERlbGV0ZVJvbGVDb21tYW5kKHsgUm9sZU5hbWU6IHJvbGVOYW1lIH0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBSb2xlIG1heSBhbHJlYWR5IGJlIGRlbGV0ZWRcbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuKTtcbiJdfQ==