UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

52 lines 5.64 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 { range; sourceDescription; constructor(range) { 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', `aws-cdk@${this.range}`], { cwd: tempDir, show: 'error', outputs: [process.stderr], }); const installedVersion = await (0, npm_1.npmQueryInstalledVersion)('aws-cdk', 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW5wbS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGktbnBtLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixnQ0FBa0Q7QUFDbEQsb0NBQXlEO0FBRXpELE1BQWEsa0JBQWtCO0lBR0E7SUFGYixpQkFBaUIsQ0FBUztJQUUxQyxZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNoRixHQUFHLEVBQUUsT0FBTztZQUNaLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBQSw4QkFBd0IsRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFNUUsT0FBTztZQUNMLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsS0FBSyxDQUFDLE9BQU87Z0JBQ1gsSUFBQSxjQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25ELENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNUJELGdEQTRCQztBQUVELE1BQWEsZ0JBQWdCO0lBQ0U7SUFBc0M7SUFBbkUsWUFBNkIsV0FBbUIsRUFBbUIsS0FBYTtRQUFuRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFtQixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQ2hGLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLElBQUEsc0JBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBWEQsNENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBJUnVubmVyU291cmNlLCBJVGVzdENsaVNvdXJjZSwgSVByZXBhcmVkUnVubmVyU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHsgbnBtUXVlcnlJbnN0YWxsZWRWZXJzaW9uIH0gZnJvbSAnLi4vbnBtJztcbmltcG9ydCB7IGFkZFRvU2hlbGxQYXRoLCByaW1yYWYsIHNoZWxsIH0gZnJvbSAnLi4vc2hlbGwnO1xuXG5leHBvcnQgY2xhc3MgUnVubmVyQ2xpTnBtU291cmNlIGltcGxlbWVudHMgSVJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRGVzY3JpcHRpb246IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJhbmdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvdXJjZURlc2NyaXB0aW9uID0gYCR7dGhpcy5yYW5nZX0gKG5wbSlgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bm5lclByZXBhcmUoKTogUHJvbWlzZTxJUHJlcGFyZWRSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+PiB7XG4gICAgY29uc3QgdGVtcERpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ3RtcGNkaycpKTtcbiAgICBmcy5ta2RpclN5bmModGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ25vZGUnLCByZXF1aXJlLnJlc29sdmUoJ25wbScpLCAnaW5zdGFsbCcsIGBhd3MtY2RrQCR7dGhpcy5yYW5nZX1gXSwge1xuICAgICAgY3dkOiB0ZW1wRGlyLFxuICAgICAgc2hvdzogJ2Vycm9yJyxcbiAgICAgIG91dHB1dHM6IFtwcm9jZXNzLnN0ZGVycl0sXG4gICAgfSk7XG4gICAgY29uc3QgaW5zdGFsbGVkVmVyc2lvbiA9IGF3YWl0IG5wbVF1ZXJ5SW5zdGFsbGVkVmVyc2lvbignYXdzLWNkaycsIHRlbXBEaXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246IGluc3RhbGxlZFZlcnNpb24sXG4gICAgICBhc3luYyBkaXNwb3NlKCkge1xuICAgICAgICByaW1yYWYodGVtcERpcik7XG4gICAgICB9LFxuICAgICAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBbVGVzdENsaU5wbVNvdXJjZSwgW3RlbXBEaXIsIHRoaXMucmFuZ2VdXTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaU5wbVNvdXJjZSBpbXBsZW1lbnRzIElUZXN0Q2xpU291cmNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YWxsUm9vdDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHJhbmdlOiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYWtlQ2xpQXZhaWxhYmxlKCkge1xuICAgIGFkZFRvU2hlbGxQYXRoKHBhdGguam9pbih0aGlzLmluc3RhbGxSb290LCAnbm9kZV9tb2R1bGVzJywgJy5iaW4nKSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkVmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZTtcbiAgfVxufVxuXG4iXX0=