Moved table config in a service
Change-Id: Ide54d7489894535cacaa4b2d839b7bc7eb23e5e4
diff --git a/src/app/core/services/helpers/config.helpers.spec.ts b/src/app/core/services/helpers/config.helpers.spec.ts
index af424e4..2431ccb 100644
--- a/src/app/core/services/helpers/config.helpers.spec.ts
+++ b/src/app/core/services/helpers/config.helpers.spec.ts
@@ -4,8 +4,37 @@
import {IXosConfigHelpersService} from './config.helpers';
import {xosCore} from '../../index';
+import {IModeldef} from '../../../datasources/rest/modeldefs.rest';
+import {IXosTableCfg} from '../../table/table';
let service: IXosConfigHelpersService;
+
+const model: IModeldef = {
+ name: 'Test',
+ fields: [
+ {
+ type: 'number',
+ name: 'id',
+ validators: {}
+ },
+ {
+ type: 'string',
+ name: 'name',
+ validators: {}
+ },
+ {
+ type: 'string',
+ name: 'something',
+ validators: {}
+ },
+ {
+ type: 'date',
+ name: 'updated',
+ validators: {}
+ },
+ ]
+};
+
describe('The ConfigHelpers service', () => {
beforeEach(angular.mock.module(xosCore));
@@ -60,4 +89,32 @@
});
});
+ describe('the modelFieldsToColumnsCfg method', () => {
+ it('should return an array of columns', () => {
+ const cols = service.modelFieldsToColumnsCfg(model.fields, 'testUrl/:id?');
+ expect(cols[0].label).toBe('Id');
+ expect(cols[0].prop).toBe('id');
+ expect(cols[0].link).toBeDefined();
+
+ expect(cols[1].label).toBe('Name');
+ expect(cols[1].prop).toBe('name');
+ expect(cols[1].link).toBeDefined();
+
+ expect(cols[2].label).toBe('Something');
+ expect(cols[2].prop).toBe('something');
+ expect(cols[2].link).not.toBeDefined();
+
+ expect(cols[3]).not.toBeDefined();
+ });
+ });
+
+ describe('the modelToTableCfg method', () => {
+ it('should return a table config', () => {
+ const cfg: IXosTableCfg = service.modelToTableCfg(model, 'testUrl/:id?');
+ expect(cfg.columns).toBeDefined();
+ expect(cfg.filter).toBe('fulltext');
+ expect(cfg.order).toEqual({field: 'id', reverse: false});
+ expect(cfg.actions.length).toBe(1);
+ });
+ });
});