@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
65 lines • 3.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const shared_1 = require("../../../../../src/generators/react-typescript/entity-management/shared");
const projectModel = require('../../../fixtures/mpg-projectModel.json');
const projectModelScr = require('../../../fixtures/project-model--scr.json');
describe('entity management generation test', function () {
it('should collect relations', function () {
const attributes = [createAttr('attr1'), createAttr('attr2')];
const relations = (0, shared_1.getRelations)(projectModel, attributes);
(0, chai_1.expect)(relations.editAssociations.attr1.path).eq('cuba/entities/mpg$Car');
(0, chai_1.expect)(relations.editAssociations.attr2.path).eq('cuba/entities/mpg$Car');
});
it('should sort out identical items from relation imports', function () {
const relations = {
e1: { className: 'Car', path: 'cuba/entities/mpg$Car' },
e2: { className: 'Car', path: 'cuba/entities/mpg$Car' }
};
const entity = { className: 'Car', path: 'cuba/entities/mpg$Car' };
const relationImports = (0, shared_1.getRelationImports)(relations, entity);
(0, chai_1.expect)(relationImports.length).eq(1);
(0, chai_1.expect)(relationImports[0].className).eq('Car');
(0, chai_1.expect)(relationImports[0].path).eq('cuba/entities/mpg$Car');
});
it('should determine view attributes', () => {
const localView = { name: '_local', entityName: 'scr_DatatypesTestEntity' };
const viewWithCompositions = { name: 'datatypesTestEntity-view', entityName: 'scr_DatatypesTestEntity' };
const answers1 = {
listView: localView,
editView: localView
};
const answers2 = {
listView: viewWithCompositions,
editView: viewWithCompositions
};
const answers3 = {
listView: localView,
editView: viewWithCompositions
};
const viewAttrs1 = (0, shared_1.getViewAttrs)(projectModelScr, answers1);
(0, chai_1.expect)(viewAttrs1.length).to.equal(new Set(viewAttrs1).size);
(0, chai_1.expect)(viewAttrs1).to.not.contain('compositionO2Oattr');
(0, chai_1.expect)(viewAttrs1).to.not.contain('compositionO2Mattr');
const viewAttrs2 = (0, shared_1.getViewAttrs)(projectModelScr, answers2);
(0, chai_1.expect)(viewAttrs2).to.contain('compositionO2Oattr');
(0, chai_1.expect)(viewAttrs2).to.contain('compositionO2Mattr');
const viewAttrs3 = (0, shared_1.getViewAttrs)(projectModelScr, answers3);
(0, chai_1.expect)(viewAttrs3).to.contain('compositionO2Oattr');
(0, chai_1.expect)(viewAttrs3).to.contain('compositionO2Mattr');
});
});
function createAttr(name) {
return {
mappingType: 'ASSOCIATION',
name,
type: {
packageName: "com.company.mpg.entity",
className: "Car",
fqn: "com.company.mpg.entity.Car",
label: "Car",
entityName: "mpg$Car"
}
};
}
//# sourceMappingURL=index.test.js.map