UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

51 lines 5.71 kB
"use strict"; 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=