UNPKG

@cuba-platform/front-generator

Version:
65 lines 3.18 kB
"use strict"; 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