UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

78 lines 6.52 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); const path = __importStar(require("path")); const fs = __importStar(require("fs-extra")); const lib_1 = require("../../lib"); (0, lib_1.integTest)('multiple deploys track their failures', (0, lib_1.withSpecificFixture)('diagnose-app', async (fixture) => { const telemetryFile = path.join(fixture.integTestDir, 'telemetry.json'); // Deploy a stack that will fail (IAM Policy without PolicyDocument) await fixture.cdkDeploy('diagnose-deploy-fail', { allowErrExit: true, telemetryFile, }); await fixture.cdkDeploy('diagnose-deploy-fail', { allowErrExit: true, telemetryFile, }); // Should see a DEPLOY event with sequentialDeploymentFailures: 2 const json = fs.readJSONSync(telemetryFile); expect(json).toEqual([ expect.objectContaining({ event: expect.objectContaining({ eventType: 'SYNTH', }), }), expect.objectContaining({ event: expect.objectContaining({ eventType: 'ASSET', }), }), expect.objectContaining({ event: expect.objectContaining({ eventType: 'DEPLOY', }), counters: expect.objectContaining({ sequentialDeploymentFailures: 2, }), }), expect.objectContaining({ event: expect.objectContaining({ eventType: 'INVOKE', }), }), ]); })); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1zZXF1ZW50aWFsLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktc2VxdWVudGlhbC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLG1DQUEyRDtBQUUzRCxJQUFBLGVBQVMsRUFDUCx1Q0FBdUMsRUFDdkMsSUFBQSx5QkFBbUIsRUFBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXhFLG9FQUFvRTtJQUNwRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUU7UUFDOUMsWUFBWSxFQUFFLElBQUk7UUFDbEIsYUFBYTtLQUNkLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRTtRQUM5QyxZQUFZLEVBQUUsSUFBSTtRQUNsQixhQUFhO0tBQ2QsQ0FBQyxDQUFDO0lBRUgsaUVBQWlFO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsU0FBUyxFQUFFLE9BQU87YUFDbkIsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsU0FBUyxFQUFFLE9BQU87YUFDbkIsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hDLDRCQUE0QixFQUFFLENBQUM7YUFDaEMsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aFNwZWNpZmljRml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ211bHRpcGxlIGRlcGxveXMgdHJhY2sgdGhlaXIgZmFpbHVyZXMnLFxuICB3aXRoU3BlY2lmaWNGaXh0dXJlKCdkaWFnbm9zZS1hcHAnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd0ZWxlbWV0cnkuanNvbicpO1xuXG4gICAgLy8gRGVwbG95IGEgc3RhY2sgdGhhdCB3aWxsIGZhaWwgKElBTSBQb2xpY3kgd2l0aG91dCBQb2xpY3lEb2N1bWVudClcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnZGlhZ25vc2UtZGVwbG95LWZhaWwnLCB7XG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICB0ZWxlbWV0cnlGaWxlLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2RpYWdub3NlLWRlcGxveS1mYWlsJywge1xuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgICAgdGVsZW1ldHJ5RmlsZSxcbiAgICB9KTtcblxuICAgIC8vIFNob3VsZCBzZWUgYSBERVBMT1kgZXZlbnQgd2l0aCBzZXF1ZW50aWFsRGVwbG95bWVudEZhaWx1cmVzOiAyXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgZXZlbnRUeXBlOiAnU1lOVEgnLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50VHlwZTogJ0FTU0VUJyxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudFR5cGU6ICdERVBMT1knLFxuICAgICAgICB9KSxcbiAgICAgICAgY291bnRlcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBzZXF1ZW50aWFsRGVwbG95bWVudEZhaWx1cmVzOiAyLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50VHlwZTogJ0lOVk9LRScsXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgXSk7XG4gIH0pLFxuKTtcbiJdfQ==