Defined a karma config to test all builded views
diff --git a/views/ngXosLib/README.md b/views/ngXosLib/README.md
index a40a955..958b721 100644
--- a/views/ngXosLib/README.md
+++ b/views/ngXosLib/README.md
@@ -50,7 +50,7 @@
We have created a [yeoman](http://yeoman.io/) generator to help you scaffolding views.
->As it is in an early stage of development you should manually link it to your system, to do this enter `xos/views/ngXosLib/generator-xos` and run `npm link`.
+>As it is in an early stage of development you should manually link it to your system, to do this enter `xos/views/ngXosLib/generator-xos` and run `npm install && npm link`.
#### To generate a new view
diff --git a/views/ngXosLib/karma.conf.js b/views/ngXosLib/karma.conf.js
index ed2ec3e..9d880a0 100644
--- a/views/ngXosLib/karma.conf.js
+++ b/views/ngXosLib/karma.conf.js
@@ -22,7 +22,6 @@
'xosHelpers/src/**/*.module.js',
'xosHelpers/src/**/*.js',
`xosHelpers/spec/**/${testFiles}.test.js`
- // 'xosHelpers/spec/ui/smart-pie.test.js'
]);
module.exports = function(config) {
diff --git a/views/ngXosLib/karma.conf.views.js b/views/ngXosLib/karma.conf.views.js
new file mode 100644
index 0000000..b1dcc6c
--- /dev/null
+++ b/views/ngXosLib/karma.conf.views.js
@@ -0,0 +1,118 @@
+'use strict';
+
+// THIS KARMA CONF WILL ITERATE THE VIEW FOLDER AND PERFORM ALL THE TESTS!!!
+
+// Karma configuration
+// Generated on Tue Oct 06 2015 09:27:10 GMT+0000 (UTC)
+
+/* eslint indent: [2,2], quotes: [2, "single"]*/
+
+const babelPreset = require('babel-preset-es2015');
+const fs = require('fs');
+
+const viewDir = '../../xos/core/xoslib/static/js/';
+let viewFiles = fs.readdirSync(viewDir);
+
+// hack to avoid testing backbone implementation (they need to be removed)
+viewFiles = viewFiles.filter(f => f.indexOf('xosAdminSite') === -1);
+
+viewFiles = viewFiles.filter(f => f.indexOf('js') >= 0).filter(f => f.match(/^xos[A-Z][a-z]+/)).map(f => `${viewDir}${f}`);
+
+/*eslint-disable*/
+
+var files = [
+ 'node_modules/babel-polyfill/dist/polyfill.js',
+
+ // loading jquery (it's used in tests)
+ `./bower_components/jasmine-jquery/lib/jasmine-jquery.js`,
+ `./bower_components/jquery/dist/jquery.js`,
+
+ // loading helpers and vendors
+ `../../xos/core/xoslib/static/js/vendor/ngXosVendor.js`,
+ `../../xos/core/xoslib/static/js/vendor/ngXosHelpers.js`,
+
+ // loading ngMock
+ `./bower_components/angular-mocks/angular-mocks.js`,
+
+ // loading templates
+ `../../xos/core/xoslib/dashboards/xosDiagnostic.html`,
+
+ // loading files
+ `../ngXosViews/*/spec/*.test.js`
+].concat(viewFiles);
+
+module.exports = function(config) {
+/*eslint-enable*/
+ config.set({
+
+ // base path that will be used to resolve all patterns (eg. files, exclude)
+ basePath: '',
+
+
+ // frameworks to use
+ // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['jasmine'],
+
+
+ // list of files / patterns to load in the browser
+ files: files,
+
+
+ // list of files to exclude
+ exclude: [
+ ],
+
+
+ // preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+ preprocessors: {
+ '../ngXosViews/**/spec/*.test.js': ['babel'],
+ },
+
+ babelPreprocessor: {
+ options: {
+ presets: [babelPreset],
+ sourceMap: 'inline'
+ }
+ },
+
+ //ngHtml2JsPreprocessor: {
+ // stripPrefix: 'src/', //strip the src path from template url (http://stackoverflow.com/questions/22869668/karma-unexpected-request-when-testing-angular-directive-even-with-ng-html2js)
+ // moduleName: 'templates' // define the template module name
+ //},
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+ reporters: ['mocha'],
+
+
+ // web server port
+ port: 9876,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: [
+ 'PhantomJS'
+ ],
+
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: false
+ });
+};
diff --git a/views/ngXosLib/package.json b/views/ngXosLib/package.json
index e0fa151..da9d27b 100644
--- a/views/ngXosLib/package.json
+++ b/views/ngXosLib/package.json
@@ -6,6 +6,7 @@
"scripts": {
"test": "karma start karma.conf.js",
"test:ci": "karma start karma.conf.ci.js",
+ "test:views": "karma start karma.conf.views.js",
"apigen": "node apigen/blueprintToNgResource.js",
"swagger": "node xos-swagger-def.js",
"doc": "gulp docs; cd ./docs",
diff --git a/views/ngXosViews/contentProvider/src/js/main.js b/views/ngXosViews/contentProvider/src/js/main.js
index 6448679..efb46bc 100644
--- a/views/ngXosViews/contentProvider/src/js/main.js
+++ b/views/ngXosViews/contentProvider/src/js/main.js
@@ -3,12 +3,10 @@
angular.module('xos.contentProvider', [
'ngResource',
'ngCookies',
- 'ngLodash',
'xos.helpers',
- 'ui.router',
- 'xos.xos'
+ 'ui.router'
])
-.config(($stateProvider, $urlRouterProvider) => {
+.config(($stateProvider) => {
$stateProvider
.state('list', {
@@ -73,7 +71,7 @@
}
};
})
-.directive('contentProviderList', function(ContentProvider, lodash){
+.directive('contentProviderList', function(ContentProvider, _){
return {
restrict: 'E',
controllerAs: 'vm',
@@ -112,7 +110,7 @@
this.deleteCp = function(id){
ContentProvider.delete({id: id}).$promise
.then(function(){
- lodash.remove(self.contentProviderList, {id: id});
+ _.remove(self.contentProviderList, {id: id});
});
};
}
@@ -179,7 +177,7 @@
}
};
})
-.directive('contentProviderCdn', function($stateParams, CdnPrefix, ContentProvider, lodash){
+.directive('contentProviderCdn', function($stateParams, CdnPrefix, ContentProvider, _){
return{
restrict: 'E',
controllerAs: 'vm',
@@ -206,7 +204,7 @@
.then(function(prf){
self.prf = prf;
// set the active CdnPrefix for this contentProvider
- self.cp_prf = lodash.where(prf, {contentProvider: parseInt($stateParams.id)});
+ self.cp_prf = _.where(prf, {contentProvider: parseInt($stateParams.id)});
}).catch(function(e){
self.result = {
status: 0,
@@ -234,7 +232,7 @@
this.removePrefix = function(item){
item.$delete()
.then(function(){
- lodash.remove(self.cp_prf, item);
+ _.remove(self.cp_prf, item);
})
.catch(function(e){
self.result = {
@@ -246,7 +244,7 @@
}
};
})
-.directive('contentProviderServer', function($stateParams, OriginServer, ContentProvider, lodash){
+.directive('contentProviderServer', function($stateParams, OriginServer, ContentProvider, _){
return{
restrict: 'E',
controllerAs: 'vm',
@@ -300,7 +298,7 @@
this.removeOrigin = function(item){
item.$delete()
.then(function(){
- lodash.remove(self.cp_os, item);
+ _.remove(self.cp_os, item);
})
.catch(function(e){
self.result = {
@@ -312,7 +310,7 @@
}
};
})
-.directive('contentProviderUsers', function($stateParams, ContentProvider, User, lodash){
+.directive('contentProviderUsers', function($stateParams, ContentProvider, User, _){
return{
restrict: 'E',
controllerAs: 'vm',
@@ -347,7 +345,7 @@
this.populateUser = function(ids, list){
for(var i = 0; i < ids.length; i++){
- ids[i] = lodash.find(list, {id: ids[i]});
+ ids[i] = _.find(list, {id: ids[i]});
}
return ids;
};
@@ -357,13 +355,13 @@
};
this.removeUserFromCp = function(user){
- lodash.remove(self.cp.users, user);
+ _.remove(self.cp.users, user);
};
this.saveContentProvider = function(cp){
// flatten the user to id of array
- cp.users = lodash.pluck(cp.users, 'id');
+ cp.users = _.pluck(cp.users, 'id');
cp.$update()
.then(function(res){