UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

53 lines (48 loc) 7.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = require("path"); const fs = require("fs-extra"); const lib_1 = require("../../lib"); ['app', 'sample-app'].forEach(template => { (0, lib_1.integTest)(`init javascript ${template}`, (0, lib_1.withTemporaryDirectory)((0, lib_1.withPackages)(async (context) => { const shell = lib_1.ShellHelper.fromContext(context); await context.cli.makeCliAvailable(); await shell.shell(['cdk', 'init', '--lib-version', context.library.requestedVersion(), '-l', 'javascript', template]); await shell.shell(['npm', 'prune']); await shell.shell(['npm', 'ls']); // this will fail if we have unmet peer dependencies await shell.shell(['npm', 'run', 'test']); await shell.shell(['cdk', 'synth']); }))); }); (0, lib_1.integTest)('Test importing CDK from ESM', (0, lib_1.withTemporaryDirectory)((0, lib_1.withPackages)(async (context) => { // Use 'cdk init -l=javascript' to get set up, but use a different file const shell = lib_1.ShellHelper.fromContext(context); await context.cli.makeCliAvailable(); await shell.shell(['cdk', 'init', '--lib-version', context.library.requestedVersion(), '-l', 'javascript', 'app']); // Rewrite some files await fs.writeFile(path.join(context.integTestDir, 'new-entrypoint.mjs'), ` // Test multiple styles of imports import { Stack, aws_sns as sns } from 'aws-cdk-lib'; import { SqsSubscription } from 'aws-cdk-lib/aws-sns-subscriptions'; import * as sqs from 'aws-cdk-lib/aws-sqs'; import * as cdk from 'aws-cdk-lib'; class TestjsStack extends Stack { constructor(scope, id, props) { super(scope, id, props); const queue = new sqs.Queue(this, 'TestjsQueue', { visibilityTimeout: cdk.Duration.seconds(300) }); const topic = new sns.Topic(this, 'TestjsTopic'); topic.addSubscription(new SqsSubscription(queue)); } } const app = new cdk.App(); new TestjsStack(app, 'TestjsStack'); `, { encoding: 'utf-8' }); // Rewrite 'cdk.json' to use new entrypoint const cdkJson = await fs.readJson(path.join(context.integTestDir, 'cdk.json')); cdkJson.app = 'node new-entrypoint.mjs'; await fs.writeJson(path.join(context.integTestDir, 'cdk.json'), cdkJson); await shell.shell(['cdk', 'synth']); }))); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1qYXZhc2NyaXB0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluaXQtamF2YXNjcmlwdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLG1DQUF5RjtBQUV6RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsbUJBQW1CLFFBQVEsRUFBRSxFQUFFLElBQUEsNEJBQXNCLEVBQUMsSUFBQSxrQkFBWSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3RixNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVyQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0RBQW9EO1FBQ3RGLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUEsZUFBUyxFQUFDLDZCQUE2QixFQUFFLElBQUEsNEJBQXNCLEVBQUMsSUFBQSxrQkFBWSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUM3Rix1RUFBdUU7SUFDdkUsTUFBTSxLQUFLLEdBQUcsaUJBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFckMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVuSCxxQkFBcUI7SUFDckIsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVCM0UsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLDJDQUEyQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDL0UsT0FBTyxDQUFDLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUN4QyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpFLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhUZW1wb3JhcnlEaXJlY3RvcnksIFNoZWxsSGVscGVyLCB3aXRoUGFja2FnZXMgfSBmcm9tICcuLi8uLi9saWInO1xuXG5bJ2FwcCcsICdzYW1wbGUtYXBwJ10uZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gIGludGVnVGVzdChgaW5pdCBqYXZhc2NyaXB0ICR7dGVtcGxhdGV9YCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSh3aXRoUGFja2FnZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQuY2xpLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ2luaXQnLCAnLS1saWItdmVyc2lvbicsIGNvbnRleHQubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksICctbCcsICdqYXZhc2NyaXB0JywgdGVtcGxhdGVdKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdwcnVuZSddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdscyddKTsgLy8gdGhpcyB3aWxsIGZhaWwgaWYgd2UgaGF2ZSB1bm1ldCBwZWVyIGRlcGVuZGVuY2llc1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3J1bicsICd0ZXN0J10pO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcblxuaW50ZWdUZXN0KCdUZXN0IGltcG9ydGluZyBDREsgZnJvbSBFU00nLCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5KHdpdGhQYWNrYWdlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAvLyBVc2UgJ2NkayBpbml0IC1sPWphdmFzY3JpcHQnIHRvIGdldCBzZXQgdXAsIGJ1dCB1c2UgYSBkaWZmZXJlbnQgZmlsZVxuICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICBhd2FpdCBjb250ZXh0LmNsaS5tYWtlQ2xpQXZhaWxhYmxlKCk7XG5cbiAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctLWxpYi12ZXJzaW9uJywgY29udGV4dC5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSwgJy1sJywgJ2phdmFzY3JpcHQnLCAnYXBwJ10pO1xuXG4gIC8vIFJld3JpdGUgc29tZSBmaWxlc1xuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGNvbnRleHQuaW50ZWdUZXN0RGlyLCAnbmV3LWVudHJ5cG9pbnQubWpzJyksIGBcbi8vIFRlc3QgbXVsdGlwbGUgc3R5bGVzIG9mIGltcG9ydHNcbmltcG9ydCB7IFN0YWNrLCBhd3Nfc25zIGFzIHNucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFNxc1N1YnNjcmlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuXG5jbGFzcyBUZXN0anNTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGUsIGlkLCBwcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgcXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsICdUZXN0anNRdWV1ZScsIHtcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygzMDApXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ1Rlc3Rqc1RvcGljJyk7XG5cbiAgICB0b3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IFNxc1N1YnNjcmlwdGlvbihxdWV1ZSkpO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgVGVzdGpzU3RhY2soYXBwLCAnVGVzdGpzU3RhY2snKTtcbmAsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG5cbiAgLy8gUmV3cml0ZSAnY2RrLmpzb24nIHRvIHVzZSBuZXcgZW50cnlwb2ludFxuICBjb25zdCBjZGtKc29uID0gYXdhaXQgZnMucmVhZEpzb24ocGF0aC5qb2luKGNvbnRleHQuaW50ZWdUZXN0RGlyLCAnY2RrLmpzb24nKSk7XG4gIGNka0pzb24uYXBwID0gJ25vZGUgbmV3LWVudHJ5cG9pbnQubWpzJztcbiAgYXdhaXQgZnMud3JpdGVKc29uKHBhdGguam9pbihjb250ZXh0LmludGVnVGVzdERpciwgJ2Nkay5qc29uJyksIGNka0pzb24pO1xuXG4gIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ3N5bnRoJ10pO1xufSkpKTtcbiJdfQ==