@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
24 lines • 5.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lib_1 = require("../../../lib");
jest.setTimeout(2 * 60 * 60_000);
(0, lib_1.integTest)('cdk diagnose after guard hook failure displays hook failure details', (0, lib_1.withSpecificFixture)('guard-hook-app', async (fixture) => {
// Deploy the setup stack which creates the Guard Hook via CloudFormation
await fixture.cdkDeploy('guard-hook-setup');
// Attempt to deploy the non-compliant stack; it fails due to the Guard Hook.
// --no-rollback leaves the stack in CREATE_FAILED so diagnose can inspect it.
const deployOutput = await fixture.cdkDeploy('guard-hook-test', {
options: ['--no-rollback'],
allowErrExit: true,
});
expect(deployOutput).toContain('CREATE_FAILED');
// Run cdk diagnose on the failed stack
const diagnoseOutput = await fixture.cdk(['--unstable=diagnose', 'diagnose', fixture.fullStackName('guard-hook-test')], { allowErrExit: true });
// diagnose has no live activity stream, so the hook failure details must have
// been fetched via the GetHookResult API and attached to the diagnosis
expect(diagnoseOutput).toContain("Hook 'Private::Guard::TestHook' failed: NonCompliant Rules:");
expect(diagnoseOutput).toContain('[AWS_S3_Bucket_AccessControl]');
expect(diagnoseOutput).toContain('• Check was not compliant as property [/Resources/NonCompliantBucket/Properties/AccessControl[L:0,C:91]] existed.');
expect(diagnoseOutput).toContain('Remediation: AccessControl is deprecated');
}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBRTlELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUVqQyxJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx5QkFBbUIsRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdEQseUVBQXlFO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO1FBQzlELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUMxQixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhELHVDQUF1QztJQUN2QyxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RDLENBQUMscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUM3RSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FDdkIsQ0FBQztJQUVGLDhFQUE4RTtJQUM5RSx1RUFBdUU7SUFDdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLG1IQUFtSCxDQUFDLENBQUM7SUFDdEosTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTtcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpYWdub3NlIGFmdGVyIGd1YXJkIGhvb2sgZmFpbHVyZSBkaXNwbGF5cyBob29rIGZhaWx1cmUgZGV0YWlscycsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ2d1YXJkLWhvb2stYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBEZXBsb3kgdGhlIHNldHVwIHN0YWNrIHdoaWNoIGNyZWF0ZXMgdGhlIEd1YXJkIEhvb2sgdmlhIENsb3VkRm9ybWF0aW9uXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stc2V0dXAnKTtcblxuICAgIC8vIEF0dGVtcHQgdG8gZGVwbG95IHRoZSBub24tY29tcGxpYW50IHN0YWNrOyBpdCBmYWlscyBkdWUgdG8gdGhlIEd1YXJkIEhvb2suXG4gICAgLy8gLS1uby1yb2xsYmFjayBsZWF2ZXMgdGhlIHN0YWNrIGluIENSRUFURV9GQUlMRUQgc28gZGlhZ25vc2UgY2FuIGluc3BlY3QgaXQuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stdGVzdCcsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1uby1yb2xsYmFjayddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgIH0pO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbignQ1JFQVRFX0ZBSUxFRCcpO1xuXG4gICAgLy8gUnVuIGNkayBkaWFnbm9zZSBvbiB0aGUgZmFpbGVkIHN0YWNrXG4gICAgY29uc3QgZGlhZ25vc2VPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhcbiAgICAgIFsnLS11bnN0YWJsZT1kaWFnbm9zZScsICdkaWFnbm9zZScsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnZ3VhcmQtaG9vay10ZXN0JyldLFxuICAgICAgeyBhbGxvd0VyckV4aXQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgLy8gZGlhZ25vc2UgaGFzIG5vIGxpdmUgYWN0aXZpdHkgc3RyZWFtLCBzbyB0aGUgaG9vayBmYWlsdXJlIGRldGFpbHMgbXVzdCBoYXZlXG4gICAgLy8gYmVlbiBmZXRjaGVkIHZpYSB0aGUgR2V0SG9va1Jlc3VsdCBBUEkgYW5kIGF0dGFjaGVkIHRvIHRoZSBkaWFnbm9zaXNcbiAgICBleHBlY3QoZGlhZ25vc2VPdXRwdXQpLnRvQ29udGFpbihcIkhvb2sgJ1ByaXZhdGU6Okd1YXJkOjpUZXN0SG9vaycgZmFpbGVkOiBOb25Db21wbGlhbnQgUnVsZXM6XCIpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCdbQVdTX1MzX0J1Y2tldF9BY2Nlc3NDb250cm9sXScpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCfigKIgQ2hlY2sgd2FzIG5vdCBjb21wbGlhbnQgYXMgcHJvcGVydHkgWy9SZXNvdXJjZXMvTm9uQ29tcGxpYW50QnVja2V0L1Byb3BlcnRpZXMvQWNjZXNzQ29udHJvbFtMOjAsQzo5MV1dIGV4aXN0ZWQuJyk7XG4gICAgZXhwZWN0KGRpYWdub3NlT3V0cHV0KS50b0NvbnRhaW4oJ1JlbWVkaWF0aW9uOiBBY2Nlc3NDb250cm9sIGlzIGRlcHJlY2F0ZWQnKTtcbiAgfSksXG4pO1xuIl19