@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
49 lines • 5.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestCliRepoSource = exports.RunnerCliRepoSource = void 0;
const path = require("path");
const fs = require("fs-extra");
const shell_1 = require("../shell");
/**
* Repo source for the CLI
*
* Just puts the repo path on the $PATH. The CLI should already be compiled to be executable
*/
class RunnerCliRepoSource {
repoRoot;
sourceDescription;
cliBinPath;
constructor(repoRoot) {
this.repoRoot = repoRoot;
this.cliBinPath = path.join(this.repoRoot, 'packages', 'aws-cdk', 'bin');
this.sourceDescription = this.cliBinPath;
}
async runnerPrepare() {
if (!await fs.pathExists(path.join(this.repoRoot, 'package.json')) || !await fs.pathExists(path.join(this.repoRoot, 'yarn.lock'))) {
throw new Error(`${this.repoRoot}: does not look like the repository root`);
}
const pj = JSON.parse(await fs.readFile(path.join(this.cliBinPath, '..', 'package.json'), 'utf-8'));
return {
version: pj.version,
dispose: () => Promise.resolve(),
serialize: () => {
return [TestCliRepoSource, [this.cliBinPath]];
},
};
}
}
exports.RunnerCliRepoSource = RunnerCliRepoSource;
class TestCliRepoSource {
cliPath;
constructor(cliPath) {
this.cliPath = cliPath;
}
async makeCliAvailable() {
(0, shell_1.addToShellPath)(this.cliPath);
}
requestedVersion() {
return '*';
}
}
exports.TestCliRepoSource = TestCliRepoSource;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXJlcG8tc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLXJlcG8tc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0Isb0NBQTBDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFtQjtJQUlEO0lBSGIsaUJBQWlCLENBQVM7SUFDekIsVUFBVSxDQUFTO0lBRXBDLFlBQTZCLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xJLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSwwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFcEcsT0FBTztZQUNMLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTztZQUNuQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNoQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBeEJELGtEQXdCQztBQUVELE1BQWEsaUJBQWlCO0lBQ0M7SUFBN0IsWUFBNkIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDNUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBWEQsOENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJUnVubmVyU291cmNlLCBJVGVzdENsaVNvdXJjZSwgSVByZXBhcmVkUnVubmVyU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHsgYWRkVG9TaGVsbFBhdGggfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8qKlxuICogUmVwbyBzb3VyY2UgZm9yIHRoZSBDTElcbiAqXG4gKiBKdXN0IHB1dHMgdGhlIHJlcG8gcGF0aCBvbiB0aGUgJFBBVEguIFRoZSBDTEkgc2hvdWxkIGFscmVhZHkgYmUgY29tcGlsZWQgdG8gYmUgZXhlY3V0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUnVubmVyQ2xpUmVwb1NvdXJjZSBpbXBsZW1lbnRzIElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+IHtcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpQmluUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVwb1Jvb3Q6IHN0cmluZykge1xuICAgIHRoaXMuY2xpQmluUGF0aCA9IHBhdGguam9pbih0aGlzLnJlcG9Sb290LCAncGFja2FnZXMnLCAnYXdzLWNkaycsICdiaW4nKTtcbiAgICB0aGlzLnNvdXJjZURlc2NyaXB0aW9uID0gdGhpcy5jbGlCaW5QYXRoO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bm5lclByZXBhcmUoKTogUHJvbWlzZTxJUHJlcGFyZWRSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+PiB7XG4gICAgaWYgKCFhd2FpdCBmcy5wYXRoRXhpc3RzKHBhdGguam9pbih0aGlzLnJlcG9Sb290LCAncGFja2FnZS5qc29uJykpIHx8ICFhd2FpdCBmcy5wYXRoRXhpc3RzKHBhdGguam9pbih0aGlzLnJlcG9Sb290LCAneWFybi5sb2NrJykpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5yZXBvUm9vdH06IGRvZXMgbm90IGxvb2sgbGlrZSB0aGUgcmVwb3NpdG9yeSByb290YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGogPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbih0aGlzLmNsaUJpblBhdGgsICcuLicsICdwYWNrYWdlLmpzb24nKSwgJ3V0Zi04JykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246IHBqLnZlcnNpb24sXG4gICAgICBkaXNwb3NlOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKSxcbiAgICAgIHNlcmlhbGl6ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1Rlc3RDbGlSZXBvU291cmNlLCBbdGhpcy5jbGlCaW5QYXRoXV07XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlc3RDbGlSZXBvU291cmNlIGltcGxlbWVudHMgSVRlc3RDbGlTb3VyY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNsaVBhdGg6IHN0cmluZykge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1ha2VDbGlBdmFpbGFibGUoKSB7XG4gICAgYWRkVG9TaGVsbFBhdGgodGhpcy5jbGlQYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0ZWRWZXJzaW9uKCkge1xuICAgIHJldHVybiAnKic7XG4gIH1cbn1cbiJdfQ==