@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
51 lines • 5.77 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 {
packageName;
repoRoot;
sourceDescription;
cliBinPath;
constructor(packageName, repoRoot) {
this.packageName = packageName;
this.repoRoot = repoRoot;
this.cliBinPath = path.join(this.repoRoot, 'packages', this.packageName, '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)(path.resolve(this.cliPath));
}
requestedVersion() {
return '*';
}
}
exports.TestCliRepoSource = TestCliRepoSource;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXJlcG8tc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLXJlcG8tc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0Isb0NBQTBDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFtQjtJQUlEO0lBQXFDO0lBSGxELGlCQUFpQixDQUFTO0lBQ3pCLFVBQVUsQ0FBUztJQUVwQyxZQUE2QixXQUFtQixFQUFrQixRQUFnQjtRQUFyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVwRyxPQUFPO1lBQ0wsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2hDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4QkQsa0RBd0JDO0FBRUQsTUFBYSxpQkFBaUI7SUFDQztJQUE3QixZQUE2QixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBWEQsOENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJUnVubmVyU291cmNlLCBJVGVzdENsaVNvdXJjZSwgSVByZXBhcmVkUnVubmVyU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHsgYWRkVG9TaGVsbFBhdGggfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8qKlxuICogUmVwbyBzb3VyY2UgZm9yIHRoZSBDTElcbiAqXG4gKiBKdXN0IHB1dHMgdGhlIHJlcG8gcGF0aCBvbiB0aGUgJFBBVEguIFRoZSBDTEkgc2hvdWxkIGFscmVhZHkgYmUgY29tcGlsZWQgdG8gYmUgZXhlY3V0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUnVubmVyQ2xpUmVwb1NvdXJjZSBpbXBsZW1lbnRzIElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+IHtcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpQmluUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHJlcG9Sb290OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaUJpblBhdGggPSBwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3BhY2thZ2VzJywgdGhpcy5wYWNrYWdlTmFtZSwgJ2JpbicpO1xuICAgIHRoaXMuc291cmNlRGVzY3JpcHRpb24gPSB0aGlzLmNsaUJpblBhdGg7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVubmVyUHJlcGFyZSgpOiBQcm9taXNlPElQcmVwYXJlZFJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4+IHtcbiAgICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHRoaXMucmVwb1Jvb3QsICdwYWNrYWdlLmpzb24nKSkgfHwgIWF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHRoaXMucmVwb1Jvb3QsICd5YXJuLmxvY2snKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLnJlcG9Sb290fTogZG9lcyBub3QgbG9vayBsaWtlIHRoZSByZXBvc2l0b3J5IHJvb3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwaiA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRoaXMuY2xpQmluUGF0aCwgJy4uJywgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogcGoudmVyc2lvbixcbiAgICAgIGRpc3Bvc2U6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpLFxuICAgICAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbVGVzdENsaVJlcG9Tb3VyY2UsIFt0aGlzLmNsaUJpblBhdGhdXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaVJlcG9Tb3VyY2UgaW1wbGVtZW50cyBJVGVzdENsaVNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2xpUGF0aDogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFrZUNsaUF2YWlsYWJsZSgpIHtcbiAgICBhZGRUb1NoZWxsUGF0aChwYXRoLnJlc29sdmUodGhpcy5jbGlQYXRoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gJyonO1xuICB9XG59XG4iXX0=