UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

111 lines 12.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable import/order */ const path = require("path"); const tree_1 = require("../lib/tree"); describe('some', () => { const tree = { id: 'App', path: '', children: { Tree: { id: 'Tree', path: 'Tree', constructInfo: { fqn: 'aws-cdk-lib.Construct', version: '1.162.0', }, }, stack: { id: 'stack', path: 'stack', children: { bucket: { id: 'bucket', path: 'stack/bucket', children: { Resource: { id: 'Resource', path: 'stack/bucket/Resource', attributes: { 'aws:cdk:cloudformation:type': 'AWS::S3::Bucket', 'aws:cdk:cloudformation:props': {}, }, constructInfo: { fqn: '@aws-cdk/aws-s3.CfnBucket', version: '1.162.0', }, }, }, constructInfo: { fqn: '@aws-cdk/aws-s3.Bucket', version: '1.162.0', }, }, CDKMetadata: { id: 'CDKMetadata', path: 'stack/CDKMetadata', children: { Default: { id: 'Default', path: 'stack/CDKMetadata/Default', constructInfo: { fqn: 'aws-cdk-lib.CfnResource', version: '1.162.0', }, }, Condition: { id: 'Condition', path: 'stack/CDKMetadata/Condition', constructInfo: { fqn: 'aws-cdk-lib.CfnCondition', version: '1.162.0', }, }, }, constructInfo: { fqn: 'aws-cdk-lib.Construct', version: '1.162.0', }, }, }, constructInfo: { fqn: 'aws-cdk-lib.Stack', version: '1.162.0', }, }, }, constructInfo: { fqn: 'aws-cdk-lib.App', version: '1.162.0', }, }; test('tree matches predicate', () => { expect((0, tree_1.some)(tree, node => node.constructInfo?.fqn === '@aws-cdk/aws-s3.Bucket')).toBe(true); }); test('tree does not match predicate', () => { expect((0, tree_1.some)(tree, node => node.constructInfo?.fqn === '@aws-cdk/aws-lambda.Function')).toBe(false); }); test('childless tree', () => { const childless = { id: 'App', path: '', constructInfo: { fqn: 'aws-cdk-lib.App', version: '1.162.0', }, }; expect((0, tree_1.some)(childless, node => node.path.length > 0)).toBe(false); }); }); describe('loadTreeFromDir', () => { test('can find tree', () => { const tree = (0, tree_1.loadTreeFromDir)(path.join(__dirname, 'cloud-assembly-trees/built-with-1_144_0')); expect(tree.id).toEqual('App'); }); test('cannot find tree', () => { const tree = (0, tree_1.loadTreeFromDir)(path.join(__dirname, 'cloud-assembly-trees/foo')); expect(tree).toEqual({}); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHJlZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLDZCQUE2QjtBQUM3QixzQ0FBdUU7QUFFdkUsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7SUFDcEIsTUFBTSxJQUFJLEdBQXNCO1FBQzlCLEVBQUUsRUFBRSxLQUFLO1FBQ1QsSUFBSSxFQUFFLEVBQUU7UUFDUixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLE1BQU07Z0JBQ1YsSUFBSSxFQUFFLE1BQU07Z0JBQ1osYUFBYSxFQUFFO29CQUNiLEdBQUcsRUFBRSx1QkFBdUI7b0JBQzVCLE9BQU8sRUFBRSxTQUFTO2lCQUNuQjthQUNGO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxPQUFPO2dCQUNYLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRTtvQkFDUixNQUFNLEVBQUU7d0JBQ04sRUFBRSxFQUFFLFFBQVE7d0JBQ1osSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLFFBQVEsRUFBRTs0QkFDUixRQUFRLEVBQUU7Z0NBQ1IsRUFBRSxFQUFFLFVBQVU7Z0NBQ2QsSUFBSSxFQUFFLHVCQUF1QjtnQ0FDN0IsVUFBVSxFQUFFO29DQUNWLDZCQUE2QixFQUFFLGlCQUFpQjtvQ0FDaEQsOEJBQThCLEVBQUUsRUFBRTtpQ0FDbkM7Z0NBQ0QsYUFBYSxFQUFFO29DQUNiLEdBQUcsRUFBRSwyQkFBMkI7b0NBQ2hDLE9BQU8sRUFBRSxTQUFTO2lDQUNuQjs2QkFDRjt5QkFDRjt3QkFDRCxhQUFhLEVBQUU7NEJBQ2IsR0FBRyxFQUFFLHdCQUF3Qjs0QkFDN0IsT0FBTyxFQUFFLFNBQVM7eUJBQ25CO3FCQUNGO29CQUNELFdBQVcsRUFBRTt3QkFDWCxFQUFFLEVBQUUsYUFBYTt3QkFDakIsSUFBSSxFQUFFLG1CQUFtQjt3QkFDekIsUUFBUSxFQUFFOzRCQUNSLE9BQU8sRUFBRTtnQ0FDUCxFQUFFLEVBQUUsU0FBUztnQ0FDYixJQUFJLEVBQUUsMkJBQTJCO2dDQUNqQyxhQUFhLEVBQUU7b0NBQ2IsR0FBRyxFQUFFLHlCQUF5QjtvQ0FDOUIsT0FBTyxFQUFFLFNBQVM7aUNBQ25COzZCQUNGOzRCQUNELFNBQVMsRUFBRTtnQ0FDVCxFQUFFLEVBQUUsV0FBVztnQ0FDZixJQUFJLEVBQUUsNkJBQTZCO2dDQUNuQyxhQUFhLEVBQUU7b0NBQ2IsR0FBRyxFQUFFLDBCQUEwQjtvQ0FDL0IsT0FBTyxFQUFFLFNBQVM7aUNBQ25COzZCQUNGO3lCQUNGO3dCQUNELGFBQWEsRUFBRTs0QkFDYixHQUFHLEVBQUUsdUJBQXVCOzRCQUM1QixPQUFPLEVBQUUsU0FBUzt5QkFDbkI7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLEdBQUcsRUFBRSxtQkFBbUI7b0JBQ3hCLE9BQU8sRUFBRSxTQUFTO2lCQUNuQjthQUNGO1NBQ0Y7UUFDRCxhQUFhLEVBQUU7WUFDYixHQUFHLEVBQUUsaUJBQWlCO1lBQ3RCLE9BQU8sRUFBRSxTQUFTO1NBQ25CO0tBQ0YsQ0FBQztJQUVGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxLQUFLLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUYsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sQ0FBQyxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsS0FBSyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JHLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUMxQixNQUFNLFNBQVMsR0FBRztZQUNoQixFQUFFLEVBQUUsS0FBSztZQUNULElBQUksRUFBRSxFQUFFO1lBQ1IsYUFBYSxFQUFFO2dCQUNiLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLE9BQU8sRUFBRSxTQUFTO2FBQ25CO1NBQ0YsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUN6QixNQUFNLElBQUksR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9vcmRlciAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdFRyZWVOb2RlLCBsb2FkVHJlZUZyb21EaXIsIHNvbWUgfSBmcm9tICcuLi9saWIvdHJlZSc7XG5cbmRlc2NyaWJlKCdzb21lJywgKCkgPT4ge1xuICBjb25zdCB0cmVlOiBDb25zdHJ1Y3RUcmVlTm9kZSA9IHtcbiAgICBpZDogJ0FwcCcsXG4gICAgcGF0aDogJycsXG4gICAgY2hpbGRyZW46IHtcbiAgICAgIFRyZWU6IHtcbiAgICAgICAgaWQ6ICdUcmVlJyxcbiAgICAgICAgcGF0aDogJ1RyZWUnLFxuICAgICAgICBjb25zdHJ1Y3RJbmZvOiB7XG4gICAgICAgICAgZnFuOiAnYXdzLWNkay1saWIuQ29uc3RydWN0JyxcbiAgICAgICAgICB2ZXJzaW9uOiAnMS4xNjIuMCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3RhY2s6IHtcbiAgICAgICAgaWQ6ICdzdGFjaycsXG4gICAgICAgIHBhdGg6ICdzdGFjaycsXG4gICAgICAgIGNoaWxkcmVuOiB7XG4gICAgICAgICAgYnVja2V0OiB7XG4gICAgICAgICAgICBpZDogJ2J1Y2tldCcsXG4gICAgICAgICAgICBwYXRoOiAnc3RhY2svYnVja2V0JyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB7XG4gICAgICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgaWQ6ICdSZXNvdXJjZScsXG4gICAgICAgICAgICAgICAgcGF0aDogJ3N0YWNrL2J1Y2tldC9SZXNvdXJjZScsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgJ2F3czpjZGs6Y2xvdWRmb3JtYXRpb246dHlwZSc6ICdBV1M6OlMzOjpCdWNrZXQnLFxuICAgICAgICAgICAgICAgICAgJ2F3czpjZGs6Y2xvdWRmb3JtYXRpb246cHJvcHMnOiB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbnN0cnVjdEluZm86IHtcbiAgICAgICAgICAgICAgICAgIGZxbjogJ0Bhd3MtY2RrL2F3cy1zMy5DZm5CdWNrZXQnLFxuICAgICAgICAgICAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uc3RydWN0SW5mbzoge1xuICAgICAgICAgICAgICBmcW46ICdAYXdzLWNkay9hd3MtczMuQnVja2V0JyxcbiAgICAgICAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIENES01ldGFkYXRhOiB7XG4gICAgICAgICAgICBpZDogJ0NES01ldGFkYXRhJyxcbiAgICAgICAgICAgIHBhdGg6ICdzdGFjay9DREtNZXRhZGF0YScsXG4gICAgICAgICAgICBjaGlsZHJlbjoge1xuICAgICAgICAgICAgICBEZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgaWQ6ICdEZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc3RhY2svQ0RLTWV0YWRhdGEvRGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgY29uc3RydWN0SW5mbzoge1xuICAgICAgICAgICAgICAgICAgZnFuOiAnYXdzLWNkay1saWIuQ2ZuUmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIENvbmRpdGlvbjoge1xuICAgICAgICAgICAgICAgIGlkOiAnQ29uZGl0aW9uJyxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc3RhY2svQ0RLTWV0YWRhdGEvQ29uZGl0aW9uJyxcbiAgICAgICAgICAgICAgICBjb25zdHJ1Y3RJbmZvOiB7XG4gICAgICAgICAgICAgICAgICBmcW46ICdhd3MtY2RrLWxpYi5DZm5Db25kaXRpb24nLFxuICAgICAgICAgICAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uc3RydWN0SW5mbzoge1xuICAgICAgICAgICAgICBmcW46ICdhd3MtY2RrLWxpYi5Db25zdHJ1Y3QnLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiAnMS4xNjIuMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnN0cnVjdEluZm86IHtcbiAgICAgICAgICBmcW46ICdhd3MtY2RrLWxpYi5TdGFjaycsXG4gICAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnN0cnVjdEluZm86IHtcbiAgICAgIGZxbjogJ2F3cy1jZGstbGliLkFwcCcsXG4gICAgICB2ZXJzaW9uOiAnMS4xNjIuMCcsXG4gICAgfSxcbiAgfTtcblxuICB0ZXN0KCd0cmVlIG1hdGNoZXMgcHJlZGljYXRlJywgKCkgPT4ge1xuICAgIGV4cGVjdChzb21lKHRyZWUsIG5vZGUgPT4gbm9kZS5jb25zdHJ1Y3RJbmZvPy5mcW4gPT09ICdAYXdzLWNkay9hd3MtczMuQnVja2V0JykpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3RyZWUgZG9lcyBub3QgbWF0Y2ggcHJlZGljYXRlJywgKCkgPT4ge1xuICAgIGV4cGVjdChzb21lKHRyZWUsIG5vZGUgPT4gbm9kZS5jb25zdHJ1Y3RJbmZvPy5mcW4gPT09ICdAYXdzLWNkay9hd3MtbGFtYmRhLkZ1bmN0aW9uJykpLnRvQmUoZmFsc2UpO1xuICB9KTtcblxuICB0ZXN0KCdjaGlsZGxlc3MgdHJlZScsICgpID0+IHtcbiAgICBjb25zdCBjaGlsZGxlc3MgPSB7XG4gICAgICBpZDogJ0FwcCcsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGNvbnN0cnVjdEluZm86IHtcbiAgICAgICAgZnFuOiAnYXdzLWNkay1saWIuQXBwJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMTYyLjAnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KHNvbWUoY2hpbGRsZXNzLCBub2RlID0+IG5vZGUucGF0aC5sZW5ndGggPiAwKSkudG9CZShmYWxzZSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdsb2FkVHJlZUZyb21EaXInLCAoKSA9PiB7XG4gIHRlc3QoJ2NhbiBmaW5kIHRyZWUnLCAoKSA9PiB7XG4gICAgY29uc3QgdHJlZSA9IGxvYWRUcmVlRnJvbURpcihwYXRoLmpvaW4oX19kaXJuYW1lLCAnY2xvdWQtYXNzZW1ibHktdHJlZXMvYnVpbHQtd2l0aC0xXzE0NF8wJykpO1xuICAgIGV4cGVjdCh0cmVlLmlkKS50b0VxdWFsKCdBcHAnKTtcbiAgfSk7XG5cbiAgdGVzdCgnY2Fubm90IGZpbmQgdHJlZScsICgpID0+IHtcbiAgICBjb25zdCB0cmVlID0gbG9hZFRyZWVGcm9tRGlyKHBhdGguam9pbihfX2Rpcm5hbWUsICdjbG91ZC1hc3NlbWJseS10cmVlcy9mb28nKSk7XG4gICAgZXhwZWN0KHRyZWUpLnRvRXF1YWwoe30pO1xuICB9KTtcbn0pOyJdfQ==