UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

38 lines 7.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_cloudformation_1 = require("@aws-sdk/client-cloudformation"); const client_lambda_1 = require("@aws-sdk/client-lambda"); const lib_1 = require("../../../lib"); const drift_helpers_1 = require("../drift/drift_helpers"); (0, lib_1.integTest)('deploy with revert-drift true', (0, lib_1.withDefaultFixture)(async (fixture) => { await fixture.cdkDeploy('driftable', {}); // Get the Lambda, we want to now make it drift const response = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({ StackName: fixture.fullStackName('driftable'), })); const lambdaResource = response.StackResources?.find(resource => resource.ResourceType === 'AWS::Lambda::Function'); if (!lambdaResource || !lambdaResource.PhysicalResourceId) { throw new Error('Could not find Lambda function in stack resources'); } const functionName = lambdaResource.PhysicalResourceId; // Update the Lambda function, introducing drift await fixture.aws.lambda.send(new client_lambda_1.UpdateFunctionConfigurationCommand({ FunctionName: functionName, Description: 'I\'m slowly drifting (drifting away)', })); // Wait for the stack update to complete await (0, drift_helpers_1.waitForLambdaUpdateComplete)(fixture, functionName); const drifted = await fixture.cdk(['drift', fixture.fullStackName('driftable')], { verbose: false }); expect(drifted).toMatch(/Stack.*driftable/); expect(drifted).toContain('1 resource has drifted'); // Update the Stack with drift-aware await fixture.cdkDeploy('driftable', { options: ['--revert-drift'], captureStderr: false, }); // After performing a drift-aware deployment, verify that no drift has occurred. const noDrifted = await fixture.cdk(['drift', fixture.fullStackName('driftable')], { verbose: false }); expect(noDrifted).toMatch(/Stack.*driftable/); // can't just .toContain because of formatting expect(noDrifted).toContain('No drift detected'); })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS13aXRoLXJldmVydC1kcmlmdC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstZGVwbG95LXdpdGgtcmV2ZXJ0LWRyaWZ0LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUErRTtBQUMvRSwwREFBNEU7QUFDNUUsc0NBQTZEO0FBQzdELDBEQUFxRTtBQUVyRSxJQUFBLGVBQVMsRUFDUCwrQkFBK0IsRUFDL0IsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6QywrQ0FBK0M7SUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BELElBQUkscURBQTZCLENBQUM7UUFDaEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0tBQzlDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQ2xELFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksS0FBSyx1QkFBdUIsQ0FDOUQsQ0FBQztJQUNGLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztJQUV2RCxnREFBZ0Q7SUFDaEQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzNCLElBQUksa0RBQWtDLENBQUM7UUFDckMsWUFBWSxFQUFFLFlBQVk7UUFDMUIsV0FBVyxFQUFFLHNDQUFzQztLQUNwRCxDQUFDLENBQ0gsQ0FBQztJQUVGLHdDQUF3QztJQUN4QyxNQUFNLElBQUEsMkNBQTJCLEVBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXpELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUVyRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRXBELG9DQUFvQztJQUNwQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQ25DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQzNCLGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUVILGdGQUFnRjtJQUNoRixNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFdkcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsOENBQThDO0lBQzdGLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVTdGFja1Jlc291cmNlc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuaW1wb3J0IHsgd2FpdEZvckxhbWJkYVVwZGF0ZUNvbXBsZXRlIH0gZnJvbSAnLi4vZHJpZnQvZHJpZnRfaGVscGVycyc7XG5cbmludGVnVGVzdChcbiAgJ2RlcGxveSB3aXRoIHJldmVydC1kcmlmdCB0cnVlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2RyaWZ0YWJsZScsIHt9KTtcblxuICAgIC8vIEdldCB0aGUgTGFtYmRhLCB3ZSB3YW50IHRvIG5vdyBtYWtlIGl0IGRyaWZ0XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ2RyaWZ0YWJsZScpLFxuICAgICAgfSksXG4gICAgKTtcbiAgICBjb25zdCBsYW1iZGFSZXNvdXJjZSA9IHJlc3BvbnNlLlN0YWNrUmVzb3VyY2VzPy5maW5kKFxuICAgICAgcmVzb3VyY2UgPT4gcmVzb3VyY2UuUmVzb3VyY2VUeXBlID09PSAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyxcbiAgICApO1xuICAgIGlmICghbGFtYmRhUmVzb3VyY2UgfHwgIWxhbWJkYVJlc291cmNlLlBoeXNpY2FsUmVzb3VyY2VJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBMYW1iZGEgZnVuY3Rpb24gaW4gc3RhY2sgcmVzb3VyY2VzJyk7XG4gICAgfVxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGxhbWJkYVJlc291cmNlLlBoeXNpY2FsUmVzb3VyY2VJZDtcblxuICAgIC8vIFVwZGF0ZSB0aGUgTGFtYmRhIGZ1bmN0aW9uLCBpbnRyb2R1Y2luZyBkcmlmdFxuICAgIGF3YWl0IGZpeHR1cmUuYXdzLmxhbWJkYS5zZW5kKFxuICAgICAgbmV3IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQoe1xuICAgICAgICBGdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgRGVzY3JpcHRpb246ICdJXFwnbSBzbG93bHkgZHJpZnRpbmcgKGRyaWZ0aW5nIGF3YXkpJyxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBXYWl0IGZvciB0aGUgc3RhY2sgdXBkYXRlIHRvIGNvbXBsZXRlXG4gICAgYXdhaXQgd2FpdEZvckxhbWJkYVVwZGF0ZUNvbXBsZXRlKGZpeHR1cmUsIGZ1bmN0aW9uTmFtZSk7XG5cbiAgICBjb25zdCBkcmlmdGVkID0gYXdhaXQgZml4dHVyZS5jZGsoWydkcmlmdCcsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnZHJpZnRhYmxlJyldLCB7IHZlcmJvc2U6IGZhbHNlIH0pO1xuXG4gICAgZXhwZWN0KGRyaWZ0ZWQpLnRvTWF0Y2goL1N0YWNrLipkcmlmdGFibGUvKTtcbiAgICBleHBlY3QoZHJpZnRlZCkudG9Db250YWluKCcxIHJlc291cmNlIGhhcyBkcmlmdGVkJyk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIFN0YWNrIHdpdGggZHJpZnQtYXdhcmVcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnZHJpZnRhYmxlJywge1xuICAgICAgb3B0aW9uczogWyctLXJldmVydC1kcmlmdCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBBZnRlciBwZXJmb3JtaW5nIGEgZHJpZnQtYXdhcmUgZGVwbG95bWVudCwgdmVyaWZ5IHRoYXQgbm8gZHJpZnQgaGFzIG9jY3VycmVkLlxuICAgIGNvbnN0IG5vRHJpZnRlZCA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnZHJpZnQnLCBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ2RyaWZ0YWJsZScpXSwgeyB2ZXJib3NlOiBmYWxzZSB9KTtcblxuICAgIGV4cGVjdChub0RyaWZ0ZWQpLnRvTWF0Y2goL1N0YWNrLipkcmlmdGFibGUvKTsgLy8gY2FuJ3QganVzdCAudG9Db250YWluIGJlY2F1c2Ugb2YgZm9ybWF0dGluZ1xuICAgIGV4cGVjdChub0RyaWZ0ZWQpLnRvQ29udGFpbignTm8gZHJpZnQgZGV0ZWN0ZWQnKTtcbiAgfSksXG4pO1xuIl19