@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
84 lines • 4.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const entity_1 = require("../../../../generators/react-typescript/common/entity");
const chai_1 = require("chai");
const assert_1 = require("assert");
const dtViewProperties = require('../../../fixtures/view-properties--datatypes-test-entity.json');
const o2oViewProperties = require('../../../fixtures/view-properties--association-o2o.json');
const dtEntityModel = require('../../../fixtures/entity-model--datatypes-test-entity.json');
const o2oEntityModel = require('../../../fixtures/entity-model--association-o2o.json');
const projectModel = require('../../../fixtures/project-model--scr.json');
describe('getDisplayedAttributes()', () => {
let dtBrowserDisplayedFields;
let dtEditorDisplayedFields;
let o2oDisplayedFieldsBrowser;
before(() => {
const dtBrowserEntityAttrs = (0, entity_1.getDisplayedAttributes)(dtViewProperties, dtEntityModel, projectModel, entity_1.ScreenType.BROWSER);
dtBrowserDisplayedFields = dtBrowserEntityAttrs.map(attr => attr.name);
const dtEditorEntityAttrs = (0, entity_1.getDisplayedAttributes)(dtViewProperties, dtEntityModel, projectModel, entity_1.ScreenType.EDITOR);
dtEditorDisplayedFields = dtEditorEntityAttrs.map(attr => attr.name);
const o2oEntityAttrs = (0, entity_1.getDisplayedAttributes)(o2oViewProperties, o2oEntityModel, projectModel, entity_1.ScreenType.BROWSER);
o2oDisplayedFieldsBrowser = o2oEntityAttrs.map(attr => attr.name);
});
it('does not include one to many associations', () => {
(0, chai_1.expect)(dtBrowserDisplayedFields).to.not.include('associationO2Mattr');
});
it('does not include byte arrays', () => {
(0, chai_1.expect)(dtBrowserDisplayedFields).to.not.include('byteArrayAttr');
});
it('does not include many to many associations (browser)', () => {
(0, chai_1.expect)(dtBrowserDisplayedFields).to.not.include('associationM2Mattr');
});
it('includes many to many associations (editor)', () => {
(0, chai_1.expect)(dtEditorDisplayedFields).to.include('associationM2Mattr');
});
it('includes all other properties', () => {
const propertiesSet = [
'bigDecimalAttr',
'booleanAttr',
'dateAttr',
'dateTimeAttr',
'doubleAttr',
'integerAttr',
'longAttr',
'stringAttr',
'timeAttr',
'uuidAttr',
'localDateTimeAttr',
'offsetDateTimeAttr',
'localDateAttr',
'localTimeAttr',
'offsetTimeAttr',
'enumAttr',
'name',
'associationO2Oattr',
'associationM2Oattr',
];
(0, chai_1.expect)(dtBrowserDisplayedFields).to.include.members(propertiesSet);
(0, chai_1.expect)(dtEditorDisplayedFields).to.include.members(propertiesSet);
(0, chai_1.expect)(o2oDisplayedFieldsBrowser).to.include.members(['name', 'datatypesTestEntity']);
});
});
describe('isStringIdEntity()', () => {
it('correctly determines if an entity is a String ID entity', () => {
expectEntityIsStringId('scr_StringIdTestEntity').to.be.true;
expectEntityIsStringId('scr_WeirdStringIdTestEntity').to.be.true;
expectEntityIsStringId('scr_BoringStringIdTestEntity').to.be.true;
expectEntityIsStringId('scr_IntegerIdTestEntity').to.be.false;
expectEntityIsStringId('scr_IntIdentityIdTestEntity').to.be.false;
expectEntityIsStringId('scr_DatatypesTestEntity').to.be.false;
expectEntityIsStringId('scr_CompositionO2MTestEntity').to.be.false;
expectEntityIsStringId('scr_AssociationM2OTestEntity').to.be.false;
});
});
function expectEntityIsStringId(name) {
return (0, chai_1.expect)((0, entity_1.isStringIdEntity)(projectModel, findTestEntity(name)));
}
function findTestEntity(name) {
const entity = projectModel.entities.find((e) => e.name === name);
if (entity == null) {
(0, assert_1.fail)('Cannot find test entity');
}
return entity;
}
//# sourceMappingURL=entity.test.js.map