aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
111 lines • 12.1 kB
JavaScript
;
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==