UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

49 lines 8.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const os = require("os"); const path = require("path"); const lib_1 = require("../../lib"); jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime (0, lib_1.integTest)('can still load old assemblies', (0, lib_1.withDefaultFixture)(async (fixture) => { const cxAsmDir = path.join(os.tmpdir(), 'cdk-integ-cx'); const testAssembliesDirectory = path.join(lib_1.RESOURCES_DIR, 'cloud-assemblies'); for (const asmdir of await listChildDirs(testAssembliesDirectory)) { fixture.log(`ASSEMBLY ${asmdir}`); await (0, lib_1.cloneDirectory)(asmdir, cxAsmDir); // Some files in the asm directory that have a .js extension are // actually treated as templates. Evaluate them using NodeJS. const templates = await listChildren(cxAsmDir, (fullPath) => Promise.resolve(fullPath.endsWith('.js'))); for (const template of templates) { const targetName = template.replace(/.js$/, ''); await (0, lib_1.shell)([process.execPath, template, '>', targetName], { cwd: cxAsmDir, outputs: [fixture.output], modEnv: { TEST_ACCOUNT: await fixture.aws.account(), TEST_REGION: fixture.aws.region, }, }); } // Use this directory as a Cloud Assembly const output = await fixture.cdk(['--app', cxAsmDir, '-v', 'synth']); // Assert that there was no providerError in CDK's stderr // Because we rely on the app/framework to actually error in case the // provider fails, we inspect the logs here. expect(output).not.toContain('$providerError'); } })); async function listChildren(parent, pred) { const ret = new Array(); for (const child of await fs_1.promises.readdir(parent, { encoding: 'utf-8' })) { const fullPath = path.join(parent, child.toString()); if (await pred(fullPath)) { ret.push(fullPath); } } return ret; } async function listChildDirs(parent) { return listChildren(parent, async (fullPath) => (await fs_1.promises.stat(fullPath)).isDirectory()); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNhbi1zdGlsbC1sb2FkLW9sZC1hc3NlbWJsaWVzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jYW4tc3RpbGwtbG9hZC1vbGQtYXNzZW1ibGllcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBb0M7QUFDcEMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixtQ0FBZ0c7QUFFaEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLCtCQUErQixFQUMvQixJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUV4RCxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdFLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxhQUFhLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBQSxvQkFBYyxFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV2QyxnRUFBZ0U7UUFDaEUsNkRBQTZEO1FBQzdELE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sSUFBQSxXQUFLLEVBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUU7Z0JBQ3pELEdBQUcsRUFBRSxRQUFRO2dCQUNiLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLE1BQU0sRUFBRTtvQkFDTixZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtvQkFDekMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDaEM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFckUseURBQXlEO1FBQ3pELHFFQUFxRTtRQUNyRSw0Q0FBNEM7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUVGLEtBQUssVUFBVSxZQUFZLENBQUMsTUFBYyxFQUFFLElBQXFDO0lBQy9FLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDaEMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBYztJQUN6QyxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxhQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCBSRVNPVVJDRVNfRElSLCBzaGVsbCwgd2l0aERlZmF1bHRGaXh0dXJlLCBjbG9uZURpcmVjdG9yeSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2NhbiBzdGlsbCBsb2FkIG9sZCBhc3NlbWJsaWVzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgY3hBc21EaXIgPSBwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstaW50ZWctY3gnKTtcblxuICAgIGNvbnN0IHRlc3RBc3NlbWJsaWVzRGlyZWN0b3J5ID0gcGF0aC5qb2luKFJFU09VUkNFU19ESVIsICdjbG91ZC1hc3NlbWJsaWVzJyk7XG4gICAgZm9yIChjb25zdCBhc21kaXIgb2YgYXdhaXQgbGlzdENoaWxkRGlycyh0ZXN0QXNzZW1ibGllc0RpcmVjdG9yeSkpIHtcbiAgICAgIGZpeHR1cmUubG9nKGBBU1NFTUJMWSAke2FzbWRpcn1gKTtcbiAgICAgIGF3YWl0IGNsb25lRGlyZWN0b3J5KGFzbWRpciwgY3hBc21EaXIpO1xuXG4gICAgICAvLyBTb21lIGZpbGVzIGluIHRoZSBhc20gZGlyZWN0b3J5IHRoYXQgaGF2ZSBhIC5qcyBleHRlbnNpb24gYXJlXG4gICAgICAvLyBhY3R1YWxseSB0cmVhdGVkIGFzIHRlbXBsYXRlcy4gRXZhbHVhdGUgdGhlbSB1c2luZyBOb2RlSlMuXG4gICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCBsaXN0Q2hpbGRyZW4oY3hBc21EaXIsIChmdWxsUGF0aCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZ1bGxQYXRoLmVuZHNXaXRoKCcuanMnKSkpO1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TmFtZSA9IHRlbXBsYXRlLnJlcGxhY2UoLy5qcyQvLCAnJyk7XG4gICAgICAgIGF3YWl0IHNoZWxsKFtwcm9jZXNzLmV4ZWNQYXRoLCB0ZW1wbGF0ZSwgJz4nLCB0YXJnZXROYW1lXSwge1xuICAgICAgICAgIGN3ZDogY3hBc21EaXIsXG4gICAgICAgICAgb3V0cHV0czogW2ZpeHR1cmUub3V0cHV0XSxcbiAgICAgICAgICBtb2RFbnY6IHtcbiAgICAgICAgICAgIFRFU1RfQUNDT1VOVDogYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpLFxuICAgICAgICAgICAgVEVTVF9SRUdJT046IGZpeHR1cmUuYXdzLnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlIHRoaXMgZGlyZWN0b3J5IGFzIGEgQ2xvdWQgQXNzZW1ibHlcbiAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnLS1hcHAnLCBjeEFzbURpciwgJy12JywgJ3N5bnRoJ10pO1xuXG4gICAgICAvLyBBc3NlcnQgdGhhdCB0aGVyZSB3YXMgbm8gcHJvdmlkZXJFcnJvciBpbiBDREsncyBzdGRlcnJcbiAgICAgIC8vIEJlY2F1c2Ugd2UgcmVseSBvbiB0aGUgYXBwL2ZyYW1ld29yayB0byBhY3R1YWxseSBlcnJvciBpbiBjYXNlIHRoZVxuICAgICAgLy8gcHJvdmlkZXIgZmFpbHMsIHdlIGluc3BlY3QgdGhlIGxvZ3MgaGVyZS5cbiAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oJyRwcm92aWRlckVycm9yJyk7XG4gICAgfVxuICB9KSxcbik7XG5cbmFzeW5jIGZ1bmN0aW9uIGxpc3RDaGlsZHJlbihwYXJlbnQ6IHN0cmluZywgcHJlZDogKHg6IHN0cmluZykgPT4gUHJvbWlzZTxib29sZWFuPikge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IGNoaWxkIG9mIGF3YWl0IGZzLnJlYWRkaXIocGFyZW50LCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGFyZW50LCBjaGlsZC50b1N0cmluZygpKTtcbiAgICBpZiAoYXdhaXQgcHJlZChmdWxsUGF0aCkpIHtcbiAgICAgIHJldC5wdXNoKGZ1bGxQYXRoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbGlzdENoaWxkRGlycyhwYXJlbnQ6IHN0cmluZykge1xuICByZXR1cm4gbGlzdENoaWxkcmVuKHBhcmVudCwgYXN5bmMgKGZ1bGxQYXRoOiBzdHJpbmcpID0+IChhd2FpdCBmcy5zdGF0KGZ1bGxQYXRoKSkuaXNEaXJlY3RvcnkoKSk7XG59XG4iXX0=