@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
51 lines • 5.71 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)(this.cliPath);
}
requestedVersion() {
return '*';
}
}
exports.TestCliRepoSource = TestCliRepoSource;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXJlcG8tc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLXJlcG8tc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFFL0Isb0NBQTBDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFtQjtJQUlEO0lBQXFDO0lBSGxELGlCQUFpQixDQUFTO0lBQ3pCLFVBQVUsQ0FBUztJQUVwQyxZQUE2QixXQUFtQixFQUFrQixRQUFnQjtRQUFyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVwRyxPQUFPO1lBQ0wsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2hDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4QkQsa0RBd0JDO0FBRUQsTUFBYSxpQkFBaUI7SUFDQztJQUE3QixZQUE2QixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFYRCw4Q0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IElSdW5uZXJTb3VyY2UsIElUZXN0Q2xpU291cmNlLCBJUHJlcGFyZWRSdW5uZXJTb3VyY2UgfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQgeyBhZGRUb1NoZWxsUGF0aCB9IGZyb20gJy4uL3NoZWxsJztcblxuLyoqXG4gKiBSZXBvIHNvdXJjZSBmb3IgdGhlIENMSVxuICpcbiAqIEp1c3QgcHV0cyB0aGUgcmVwbyBwYXRoIG9uIHRoZSAkUEFUSC4gVGhlIENMSSBzaG91bGQgYWxyZWFkeSBiZSBjb21waWxlZCB0byBiZSBleGVjdXRhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBSdW5uZXJDbGlSZXBvU291cmNlIGltcGxlbWVudHMgSVJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRGVzY3JpcHRpb246IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjbGlCaW5QYXRoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgcmVwb1Jvb3Q6IHN0cmluZykge1xuICAgIHRoaXMuY2xpQmluUGF0aCA9IHBhdGguam9pbih0aGlzLnJlcG9Sb290LCAncGFja2FnZXMnLCB0aGlzLnBhY2thZ2VOYW1lLCAnYmluJyk7XG4gICAgdGhpcy5zb3VyY2VEZXNjcmlwdGlvbiA9IHRoaXMuY2xpQmluUGF0aDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBydW5uZXJQcmVwYXJlKCk6IFByb21pc2U8SVByZXBhcmVkUnVubmVyU291cmNlPElUZXN0Q2xpU291cmNlPj4ge1xuICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3BhY2thZ2UuanNvbicpKSB8fCAhYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3lhcm4ubG9jaycpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMucmVwb1Jvb3R9OiBkb2VzIG5vdCBsb29rIGxpa2UgdGhlIHJlcG9zaXRvcnkgcm9vdGApO1xuICAgIH1cblxuICAgIGNvbnN0IHBqID0gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4odGhpcy5jbGlCaW5QYXRoLCAnLi4nLCAncGFja2FnZS5qc29uJyksICd1dGYtOCcpKTtcblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uOiBwai52ZXJzaW9uLFxuICAgICAgZGlzcG9zZTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCksXG4gICAgICBzZXJpYWxpemU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtUZXN0Q2xpUmVwb1NvdXJjZSwgW3RoaXMuY2xpQmluUGF0aF1dO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0Q2xpUmVwb1NvdXJjZSBpbXBsZW1lbnRzIElUZXN0Q2xpU291cmNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjbGlQYXRoOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYWtlQ2xpQXZhaWxhYmxlKCkge1xuICAgIGFkZFRvU2hlbGxQYXRoKHRoaXMuY2xpUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gJyonO1xuICB9XG59XG4iXX0=