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);
+    });
+  });
 });