UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

54 lines 5.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TestCliNpmSource = exports.RunnerCliNpmSource = void 0; const os = require("os"); const path = require("path"); const fs = require("fs-extra"); const npm_1 = require("../npm"); const shell_1 = require("../shell"); class RunnerCliNpmSource { packageName; range; sourceDescription; constructor(packageName, range) { this.packageName = packageName; this.range = range; this.sourceDescription = `${this.range} (npm)`; } async runnerPrepare() { const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tmpcdk')); fs.mkdirSync(tempDir, { recursive: true }); await (0, shell_1.shell)(['node', require.resolve('npm'), 'install', `${this.packageName}@${this.range}`], { cwd: tempDir, show: 'error', outputs: [process.stderr], }); const installedVersion = await (0, npm_1.npmQueryInstalledVersion)(this.packageName, tempDir); return { version: installedVersion, async dispose() { (0, shell_1.rimraf)(tempDir); }, serialize: () => { return [TestCliNpmSource, [tempDir, this.range]]; }, }; } } exports.RunnerCliNpmSource = RunnerCliNpmSource; class TestCliNpmSource { installRoot; range; constructor(installRoot, range) { this.installRoot = installRoot; this.range = range; } async makeCliAvailable() { (0, shell_1.addToShellPath)(path.join(this.installRoot, 'node_modules', '.bin')); } requestedVersion() { return this.range; } } exports.TestCliNpmSource = TestCliNpmSource; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW5wbS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGktbnBtLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixnQ0FBa0Q7QUFDbEQsb0NBQXlEO0FBRXpELE1BQWEsa0JBQWtCO0lBR0E7SUFBc0M7SUFGbkQsaUJBQWlCLENBQVM7SUFFMUMsWUFBNkIsV0FBbUIsRUFBbUIsS0FBYTtRQUFuRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFtQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQzlFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0MsTUFBTSxJQUFBLGFBQUssRUFBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDNUYsR0FBRyxFQUFFLE9BQU87WUFDWixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsOEJBQXdCLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRixPQUFPO1lBQ0wsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixLQUFLLENBQUMsT0FBTztnQkFDWCxJQUFBLGNBQU0sRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNsQixDQUFDO1lBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1QkQsZ0RBNEJDO0FBRUQsTUFBYSxnQkFBZ0I7SUFDRTtJQUFzQztJQUFuRSxZQUE2QixXQUFtQixFQUFtQixLQUFhO1FBQW5ELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQW1CLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDaEYsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFYRCw0Q0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IElSdW5uZXJTb3VyY2UsIElUZXN0Q2xpU291cmNlLCBJUHJlcGFyZWRSdW5uZXJTb3VyY2UgfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQgeyBucG1RdWVyeUluc3RhbGxlZFZlcnNpb24gfSBmcm9tICcuLi9ucG0nO1xuaW1wb3J0IHsgYWRkVG9TaGVsbFBhdGgsIHJpbXJhZiwgc2hlbGwgfSBmcm9tICcuLi9zaGVsbCc7XG5cbmV4cG9ydCBjbGFzcyBSdW5uZXJDbGlOcG1Tb3VyY2UgaW1wbGVtZW50cyBJUnVubmVyU291cmNlPElUZXN0Q2xpU291cmNlPiB7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSByYW5nZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3VyY2VEZXNjcmlwdGlvbiA9IGAke3RoaXMucmFuZ2V9IChucG0pYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBydW5uZXJQcmVwYXJlKCk6IFByb21pc2U8SVByZXBhcmVkUnVubmVyU291cmNlPElUZXN0Q2xpU291cmNlPj4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICd0bXBjZGsnKSk7XG4gICAgZnMubWtkaXJTeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgYXdhaXQgc2hlbGwoWydub2RlJywgcmVxdWlyZS5yZXNvbHZlKCducG0nKSwgJ2luc3RhbGwnLCBgJHt0aGlzLnBhY2thZ2VOYW1lfUAke3RoaXMucmFuZ2V9YF0sIHtcbiAgICAgIGN3ZDogdGVtcERpcixcbiAgICAgIHNob3c6ICdlcnJvcicsXG4gICAgICBvdXRwdXRzOiBbcHJvY2Vzcy5zdGRlcnJdLFxuICAgIH0pO1xuICAgIGNvbnN0IGluc3RhbGxlZFZlcnNpb24gPSBhd2FpdCBucG1RdWVyeUluc3RhbGxlZFZlcnNpb24odGhpcy5wYWNrYWdlTmFtZSwgdGVtcERpcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogaW5zdGFsbGVkVmVyc2lvbixcbiAgICAgIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgICAgIHJpbXJhZih0ZW1wRGlyKTtcbiAgICAgIH0sXG4gICAgICBzZXJpYWxpemU6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIFtUZXN0Q2xpTnBtU291cmNlLCBbdGVtcERpciwgdGhpcy5yYW5nZV1dO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0Q2xpTnBtU291cmNlIGltcGxlbWVudHMgSVRlc3RDbGlTb3VyY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluc3RhbGxSb290OiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2U6IHN0cmluZykge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1ha2VDbGlBdmFpbGFibGUoKSB7XG4gICAgYWRkVG9TaGVsbFBhdGgocGF0aC5qb2luKHRoaXMuaW5zdGFsbFJvb3QsICdub2RlX21vZHVsZXMnLCAnLmJpbicpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0ZWRWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJhbmdlO1xuICB9XG59XG5cbiJdfQ==