@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
38 lines • 7.26 kB
JavaScript
;
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