UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

84 lines 7.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.TestCliRepoSource = exports.RunnerCliRepoSource = void 0; const path = __importStar(require("path")); const fs = __importStar(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXJlcG8tc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLXJlcG8tc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFFL0Isb0NBQTBDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFtQjtJQUlEO0lBQXFDO0lBSGxELGlCQUFpQixDQUFTO0lBQ3pCLFVBQVUsQ0FBUztJQUVwQyxZQUE2QixXQUFtQixFQUFrQixRQUFnQjtRQUFyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVwRyxPQUFPO1lBQ0wsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2hDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4QkQsa0RBd0JDO0FBRUQsTUFBYSxpQkFBaUI7SUFDQztJQUE3QixZQUE2QixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBWEQsOENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJUnVubmVyU291cmNlLCBJVGVzdENsaVNvdXJjZSwgSVByZXBhcmVkUnVubmVyU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHsgYWRkVG9TaGVsbFBhdGggfSBmcm9tICcuLi9zaGVsbCc7XG5cbi8qKlxuICogUmVwbyBzb3VyY2UgZm9yIHRoZSBDTElcbiAqXG4gKiBKdXN0IHB1dHMgdGhlIHJlcG8gcGF0aCBvbiB0aGUgJFBBVEguIFRoZSBDTEkgc2hvdWxkIGFscmVhZHkgYmUgY29tcGlsZWQgdG8gYmUgZXhlY3V0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUnVubmVyQ2xpUmVwb1NvdXJjZSBpbXBsZW1lbnRzIElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+IHtcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpQmluUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHJlcG9Sb290OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaUJpblBhdGggPSBwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3BhY2thZ2VzJywgdGhpcy5wYWNrYWdlTmFtZSwgJ2JpbicpO1xuICAgIHRoaXMuc291cmNlRGVzY3JpcHRpb24gPSB0aGlzLmNsaUJpblBhdGg7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVubmVyUHJlcGFyZSgpOiBQcm9taXNlPElQcmVwYXJlZFJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4+IHtcbiAgICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHRoaXMucmVwb1Jvb3QsICdwYWNrYWdlLmpzb24nKSkgfHwgIWF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHRoaXMucmVwb1Jvb3QsICd5YXJuLmxvY2snKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLnJlcG9Sb290fTogZG9lcyBub3QgbG9vayBsaWtlIHRoZSByZXBvc2l0b3J5IHJvb3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwaiA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRoaXMuY2xpQmluUGF0aCwgJy4uJywgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogcGoudmVyc2lvbixcbiAgICAgIGRpc3Bvc2U6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpLFxuICAgICAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbVGVzdENsaVJlcG9Tb3VyY2UsIFt0aGlzLmNsaUJpblBhdGhdXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaVJlcG9Tb3VyY2UgaW1wbGVtZW50cyBJVGVzdENsaVNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2xpUGF0aDogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFrZUNsaUF2YWlsYWJsZSgpIHtcbiAgICBhZGRUb1NoZWxsUGF0aChwYXRoLnJlc29sdmUodGhpcy5jbGlQYXRoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gJyonO1xuICB9XG59XG4iXX0=