Table component with action
diff --git a/views/ngXosLib/xosHelpers/spec/ui/table.test.js b/views/ngXosLib/xosHelpers/spec/ui/table.test.js
new file mode 100644
index 0000000..e4c33f1
--- /dev/null
+++ b/views/ngXosLib/xosHelpers/spec/ui/table.test.js
@@ -0,0 +1,83 @@
+/**
+ * © OpenCORD
+ *
+ * Created by teone on 3/24/16.
+ */
+
+(function () {
+  'use strict';
+
+  describe('The xos.helper module', function(){
+    describe('The xos-table component', () => {
+
+      beforeEach(module('xos.helpers'));
+
+      it('should throw an error if no config is specified', inject(($compile, $rootScope) => {
+        function errorFunctionWrapper(){
+          $compile(angular.element('<xos-table></xos-table>'))($rootScope);
+          $rootScope.$digest();
+        }
+        expect(errorFunctionWrapper).toThrow(new Error('[xosTable] Please provide a configuration via the "config" attribute'));
+      }));
+
+      it('should throw an error if no config columns are specified', inject(($compile, $rootScope) => {
+        function errorFunctionWrapper(){
+          // setup the parent scope
+          let scope = $rootScope.$new();
+          scope.config = 'green';
+          $compile(angular.element('<xos-table config="config"></xos-table>'))(scope);
+          $rootScope.$digest();
+        }
+        expect(errorFunctionWrapper).toThrow(new Error('[xosTable] Please provide a columns list in the configuration'));
+      }));
+
+    });
+
+    describe('when correctly configured', function() {
+      var scope, element, isolatedScope;
+
+      beforeEach(inject(function ($compile, $rootScope) {
+        scope = $rootScope.$new();
+
+        scope.config = {
+          columns: [
+            {
+              label: 'Label 1',
+              prop: 'label-1'
+            },
+            {
+              label: 'Label 2',
+              prop: 'label-2'
+            }
+          ]
+        };
+
+        scope.data = [
+          {
+            'label-1': 'Sample 1.1',
+            'label-2': 'Sample 1.2'
+          },
+          {
+            'label-1': 'Sample 2.1',
+            'label-2': 'Sample 2.2'
+          }
+        ]
+
+        element = angular.element('<xos-table config="config" data="data"></xos-table>');
+        $compile(element)(scope);
+        // scope.$apply();
+        element.scope().$apply();
+        isolatedScope = element.isolateScope();
+        console.log(element, isolatedScope);
+      }));
+
+      xit('should contain 2 columns', function() {
+        console.log('aaa', isolatedScope);
+        
+        // one is the filter, the other two are the products, one is the pagination
+        expect(isolatedScope.columns).toEqual(2);
+      });
+    });
+  });
+})();
+