UNPKG

projen

Version:

CDK for software projects

49 lines 9.16 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.IntegrationTestBase = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const path_1 = require("path"); const posix_1 = require("path/posix"); const internal_1 = require("./internal"); const component_1 = require("../component"); class IntegrationTestBase extends component_1.Component { constructor(project, options) { super(project); const entry = options.entrypoint; const name = options.name ?? (0, path_1.basename)(entry, internal_1.TYPESCRIPT_INTEG_EXT); this.name = name; const dir = (0, path_1.dirname)(entry); const tmpRoot = (0, posix_1.join)(dir, ".tmp"); project.addGitIgnore(tmpRoot); project.addPackageIgnore(tmpRoot); this.tmpDir = (0, posix_1.join)(tmpRoot, `${name}.integ`); this.snapshotDir = (0, posix_1.join)(dir, `${name}.integ.snapshot`); project.addPackageIgnore(this.snapshotDir); this.deployTask = project.addTask(`integ:${name}:deploy`, { description: `deploy integration test '${name}' and capture snapshot`, }); this.snapshotTask = project.addTask(`integ:${name}:snapshot`, { description: `update snapshot for integration test "${name}"`, }); this.assertTask = project.addTask(`integ:${name}:assert`, { description: `assert the snapshot of integration test '${name}'`, exec: `[ -d "${this.snapshotDir}" ] || (echo "No snapshot available for integration test '${name}'. Run 'projen ${this.deployTask.name}' to capture." && exit 1)`, }); // synth as part of our tests, which means that if outdir changes, anti-tamper will fail project.testTask.spawn(this.assertTask); let snapshotAllTask = project.tasks.tryFind("integ:snapshot-all"); if (!snapshotAllTask) { snapshotAllTask = project.addTask("integ:snapshot-all", { description: "update snapshot for all integration tests", }); } // integ:snapshot-all should snapshot all integration tests, including // this one. snapshotAllTask.spawn(this.snapshotTask); } } exports.IntegrationTestBase = IntegrationTestBase; _a = JSII_RTTI_SYMBOL_1; IntegrationTestBase[_a] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.99.51" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tdGVzdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay9pbnRlZ3JhdGlvbi10ZXN0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBeUM7QUFDekMsc0NBQWtDO0FBQ2xDLHlDQUFrRDtBQUNsRCw0Q0FBeUM7QUE4QnpDLE1BQXNCLG1CQUFvQixTQUFRLHFCQUFTO0lBK0J6RCxZQUFZLE9BQWdCLEVBQUUsT0FBbUM7UUFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUEsZUFBUSxFQUFDLEtBQUssRUFBRSwrQkFBb0IsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLE1BQU0sT0FBTyxHQUFHLElBQUEsWUFBSSxFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsWUFBSSxFQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLFlBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUN4RCxXQUFXLEVBQUUsNEJBQTRCLElBQUksd0JBQXdCO1NBQ3RFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQzVELFdBQVcsRUFBRSx5Q0FBeUMsSUFBSSxHQUFHO1NBQzlELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ3hELFdBQVcsRUFBRSw0Q0FBNEMsSUFBSSxHQUFHO1lBQ2hFLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxXQUFXLDZEQUE2RCxJQUFJLGtCQUFrQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksMkJBQTJCO1NBQ2xLLENBQUMsQ0FBQztRQUVILHdGQUF3RjtRQUN4RixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3RELFdBQVcsRUFBRSwyQ0FBMkM7YUFDekQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxZQUFZO1FBQ1osZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7QUExRUgsa0RBMkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoL3Bvc2l4XCI7XG5pbXBvcnQgeyBUWVBFU0NSSVBUX0lOVEVHX0VYVCB9IGZyb20gXCIuL2ludGVybmFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBJbnRlZ3JhdGlvblRlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RCYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqIEBkZWZhdWx0IC0gRGVyaXZlZCBmcm9tIHRoZSBlbnRyeXBvaW50IGZpbGVuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwYXRoIGZyb20gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkgdG8gYSBUeXBlU2NyaXB0IGZpbGUgd2hpY2ggY29udGFpbnNcbiAgICogdGhlIGludGVncmF0aW9uIHRlc3QgYXBwLlxuICAgKlxuICAgKiBUaGlzIGlzIHJlbGF0aXZlIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJ0ZXN0L3N1YmRpci9mb28uaW50ZWcudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgdHNjb25maWcuanNvbiBmaWxlIHRvIHVzZSB3aGVuIHJ1bm5pbmcgaW50ZWdyYXRpb24gdGVzdCBjZGsgYXBwcy5cbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZWdyYXRpb25UZXN0QmFzZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZXBsb3kgdGhlIGludGVncmF0aW9uIHRlc3QgYW5kIHVwZGF0ZSB0aGUgc25hcHNob3QgdXBvbiBzdWNjZXNzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGFuZCBjb21wYXJlcyBhZ2FpbnN0IGEgbG9jYWwgY29weSAocnVucyBkdXJpbmcgYnVpbGQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2VydFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIEp1c3QgdXBkYXRlIHNuYXBzaG90ICh3aXRob3V0IGRlcGxveW1lbnQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90VGFzazogVGFzaztcblxuICAvKipcbiAgICogVGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBpbnRlZ3JhdGlvbiB0ZXN0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRtcERpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTbmFwc2hvdCBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNuYXBzaG90RGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEludGVncmF0aW9uIHRlc3QgbmFtZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0QmFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeXBvaW50O1xuICAgIGNvbnN0IG5hbWUgPSBvcHRpb25zLm5hbWUgPz8gYmFzZW5hbWUoZW50cnksIFRZUEVTQ1JJUFRfSU5URUdfRVhUKTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoZW50cnkpO1xuXG4gICAgY29uc3QgdG1wUm9vdCA9IGpvaW4oZGlyLCBcIi50bXBcIik7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUodG1wUm9vdCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRtcFJvb3QpO1xuXG4gICAgdGhpcy50bXBEaXIgPSBqb2luKHRtcFJvb3QsIGAke25hbWV9LmludGVnYCk7XG5cbiAgICB0aGlzLnNuYXBzaG90RGlyID0gam9pbihkaXIsIGAke25hbWV9LmludGVnLnNuYXBzaG90YCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRoaXMuc25hcHNob3REaXIpO1xuXG4gICAgdGhpcy5kZXBsb3lUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OmRlcGxveWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGVwbG95IGludGVncmF0aW9uIHRlc3QgJyR7bmFtZX0nIGFuZCBjYXB0dXJlIHNuYXBzaG90YCxcbiAgICB9KTtcblxuICAgIHRoaXMuc25hcHNob3RUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OnNuYXBzaG90YCwge1xuICAgICAgZGVzY3JpcHRpb246IGB1cGRhdGUgc25hcHNob3QgZm9yIGludGVncmF0aW9uIHRlc3QgXCIke25hbWV9XCJgLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NlcnRUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OmFzc2VydGAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgYXNzZXJ0IHRoZSBzbmFwc2hvdCBvZiBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9J2AsXG4gICAgICBleGVjOiBgWyAtZCBcIiR7dGhpcy5zbmFwc2hvdERpcn1cIiBdIHx8IChlY2hvIFwiTm8gc25hcHNob3QgYXZhaWxhYmxlIGZvciBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9Jy4gUnVuICdwcm9qZW4gJHt0aGlzLmRlcGxveVRhc2submFtZX0nIHRvIGNhcHR1cmUuXCIgJiYgZXhpdCAxKWAsXG4gICAgfSk7XG5cbiAgICAvLyBzeW50aCBhcyBwYXJ0IG9mIG91ciB0ZXN0cywgd2hpY2ggbWVhbnMgdGhhdCBpZiBvdXRkaXIgY2hhbmdlcywgYW50aS10YW1wZXIgd2lsbCBmYWlsXG4gICAgcHJvamVjdC50ZXN0VGFzay5zcGF3bih0aGlzLmFzc2VydFRhc2spO1xuXG4gICAgbGV0IHNuYXBzaG90QWxsVGFzayA9IHByb2plY3QudGFza3MudHJ5RmluZChcImludGVnOnNuYXBzaG90LWFsbFwiKTtcbiAgICBpZiAoIXNuYXBzaG90QWxsVGFzaykge1xuICAgICAgc25hcHNob3RBbGxUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiaW50ZWc6c25hcHNob3QtYWxsXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwidXBkYXRlIHNuYXBzaG90IGZvciBhbGwgaW50ZWdyYXRpb24gdGVzdHNcIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGludGVnOnNuYXBzaG90LWFsbCBzaG91bGQgc25hcHNob3QgYWxsIGludGVncmF0aW9uIHRlc3RzLCBpbmNsdWRpbmdcbiAgICAvLyB0aGlzIG9uZS5cbiAgICBzbmFwc2hvdEFsbFRhc2suc3Bhd24odGhpcy5zbmFwc2hvdFRhc2spO1xuICB9XG59XG4iXX0=