UNPKG

projen

Version:

CDK for software projects

49 lines 7.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IntegrationTest = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const posix_1 = require("path/posix"); const cdk_1 = require("../cdk"); const dependencies_1 = require("../dependencies"); /** * CDK8S integration test. */ class IntegrationTest extends cdk_1.IntegrationTestBase { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.103.12" }; constructor(project, options) { super(project, options); project.deps.requestDependency({ name: "cdk8s-cli", type: dependencies_1.DependencyType.BUILD, }); project.deps.requestDependency({ name: "ts-node", type: dependencies_1.DependencyType.BUILD, }); const deployDir = (0, posix_1.join)(this.tmpDir, "deploy.cdk.out"); const assertDir = (0, posix_1.join)(this.tmpDir, "assert.cdk.out"); const app = `ts-node -P ${options.tsconfigPath} ${options.entrypoint}`; // Synth, deploy, and capture the snapshot this.deployTask.execArgs(["rm", "-fr", deployDir]); this.deployTask.execArgs(["cdk8s", "synth", "--app", app, "-o", deployDir]); this.deployTask.execArgs(["kubectl", "apply", "-f", deployDir]); // If deployment was successful, copy the deploy dir to the expected dir this.deployTask.execArgs(["rm", "-fr", this.snapshotDir]); this.deployTask.execArgs(["mv", deployDir, this.snapshotDir]); // Run a snapshot this.snapshotTask.execArgs(["rm", "-fr", this.snapshotDir]); this.snapshotTask.execArgs([ "cdk8s", "synth", "--app", app, "-o", this.snapshotDir, ]); // Assert that the snapshot has not changed (run during tests) this.assertTask.execArgs(["cdk8s", "synth", "--app", app, "-o", assertDir]); this.assertTask.execArgs(["diff", `${this.snapshotDir}/`, `${assertDir}/`]); } } exports.IntegrationTest = IntegrationTest; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGs4cy9pbnRlZ3JhdGlvbi10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxzQ0FBa0M7QUFFbEMsZ0NBQTZDO0FBQzdDLGtEQUFpRDtBQVFqRDs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSx5QkFBbUI7O0lBQ3RELFlBQVksT0FBZ0IsRUFBRSxPQUErQjtRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDN0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzdCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFBLFlBQUksRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBQSxZQUFJLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLGNBQWMsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkUsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRSx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUU5RCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3pCLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLEdBQUc7WUFDSCxJQUFJO1lBQ0osSUFBSSxDQUFDLFdBQVc7U0FDakIsQ0FBQyxDQUFDO1FBRUgsOERBQThEO1FBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7O0FBeENILDBDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aC9wb3NpeFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ3JhdGlvblRlc3RCYXNlT3B0aW9ucyB9IGZyb20gXCIuLi9jZGtcIjtcbmltcG9ydCB7IEludGVncmF0aW9uVGVzdEJhc2UgfSBmcm9tIFwiLi4vY2RrXCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgSW50ZWdyYXRpb25UZXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0T3B0aW9ucyBleHRlbmRzIEludGVncmF0aW9uVGVzdEJhc2VPcHRpb25zIHt9XG5cbi8qKlxuICogQ0RLOFMgaW50ZWdyYXRpb24gdGVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uVGVzdCBleHRlbmRzIEludGVncmF0aW9uVGVzdEJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBJbnRlZ3JhdGlvblRlc3RPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwgb3B0aW9ucyk7XG5cbiAgICBwcm9qZWN0LmRlcHMucmVxdWVzdERlcGVuZGVuY3koe1xuICAgICAgbmFtZTogXCJjZGs4cy1jbGlcIixcbiAgICAgIHR5cGU6IERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5kZXBzLnJlcXVlc3REZXBlbmRlbmN5KHtcbiAgICAgIG5hbWU6IFwidHMtbm9kZVwiLFxuICAgICAgdHlwZTogRGVwZW5kZW5jeVR5cGUuQlVJTEQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZXBsb3lEaXIgPSBqb2luKHRoaXMudG1wRGlyLCBcImRlcGxveS5jZGsub3V0XCIpO1xuICAgIGNvbnN0IGFzc2VydERpciA9IGpvaW4odGhpcy50bXBEaXIsIFwiYXNzZXJ0LmNkay5vdXRcIik7XG4gICAgY29uc3QgYXBwID0gYHRzLW5vZGUgLVAgJHtvcHRpb25zLnRzY29uZmlnUGF0aH0gJHtvcHRpb25zLmVudHJ5cG9pbnR9YDtcblxuICAgIC8vIFN5bnRoLCBkZXBsb3ksIGFuZCBjYXB0dXJlIHRoZSBzbmFwc2hvdFxuICAgIHRoaXMuZGVwbG95VGFzay5leGVjQXJncyhbXCJybVwiLCBcIi1mclwiLCBkZXBsb3lEaXJdKTtcbiAgICB0aGlzLmRlcGxveVRhc2suZXhlY0FyZ3MoW1wiY2RrOHNcIiwgXCJzeW50aFwiLCBcIi0tYXBwXCIsIGFwcCwgXCItb1wiLCBkZXBsb3lEaXJdKTtcbiAgICB0aGlzLmRlcGxveVRhc2suZXhlY0FyZ3MoW1wia3ViZWN0bFwiLCBcImFwcGx5XCIsIFwiLWZcIiwgZGVwbG95RGlyXSk7XG4gICAgLy8gSWYgZGVwbG95bWVudCB3YXMgc3VjY2Vzc2Z1bCwgY29weSB0aGUgZGVwbG95IGRpciB0byB0aGUgZXhwZWN0ZWQgZGlyXG4gICAgdGhpcy5kZXBsb3lUYXNrLmV4ZWNBcmdzKFtcInJtXCIsIFwiLWZyXCIsIHRoaXMuc25hcHNob3REaXJdKTtcbiAgICB0aGlzLmRlcGxveVRhc2suZXhlY0FyZ3MoW1wibXZcIiwgZGVwbG95RGlyLCB0aGlzLnNuYXBzaG90RGlyXSk7XG5cbiAgICAvLyBSdW4gYSBzbmFwc2hvdFxuICAgIHRoaXMuc25hcHNob3RUYXNrLmV4ZWNBcmdzKFtcInJtXCIsIFwiLWZyXCIsIHRoaXMuc25hcHNob3REaXJdKTtcbiAgICB0aGlzLnNuYXBzaG90VGFzay5leGVjQXJncyhbXG4gICAgICBcImNkazhzXCIsXG4gICAgICBcInN5bnRoXCIsXG4gICAgICBcIi0tYXBwXCIsXG4gICAgICBhcHAsXG4gICAgICBcIi1vXCIsXG4gICAgICB0aGlzLnNuYXBzaG90RGlyLFxuICAgIF0pO1xuXG4gICAgLy8gQXNzZXJ0IHRoYXQgdGhlIHNuYXBzaG90IGhhcyBub3QgY2hhbmdlZCAocnVuIGR1cmluZyB0ZXN0cylcbiAgICB0aGlzLmFzc2VydFRhc2suZXhlY0FyZ3MoW1wiY2RrOHNcIiwgXCJzeW50aFwiLCBcIi0tYXBwXCIsIGFwcCwgXCItb1wiLCBhc3NlcnREaXJdKTtcbiAgICB0aGlzLmFzc2VydFRhc2suZXhlY0FyZ3MoW1wiZGlmZlwiLCBgJHt0aGlzLnNuYXBzaG90RGlyfS9gLCBgJHthc3NlcnREaXJ9L2BdKTtcbiAgfVxufVxuIl19