diff --git a/.gitignore b/.gitignore index 96a34ad337..f171571be6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ node_modules workspace.xml .idea/ dist/ +ng2-components/coverage/ !systemjs.config.js demo-shell-ng2/app/components/router/ ng2-components/ng2-alfresco-userinfo-old/demo/src/app/ diff --git a/.travis.yml b/.travis.yml index 69af6b64e7..63a1d00ba6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: node_js dist: trusty sudo: false node_js: - - "5" + - "6" before_install: - "export DISPLAY=:99.0" @@ -15,7 +15,7 @@ env: script: - if ([ "$MODULE" == "ng2-components" ]); then - (./scripts/npm-build-all.sh -t;); + (./scripts/npm-build-all.sh -t || exit 1;); fi - if ([ "$MODULE" == "ng2-demo-shell" ]); then (cd demo-shell-ng2 && npm install && npm run test || exit 1;); diff --git a/appveyor.yml b/appveyor.yml index 74bffe5fad..e65747355b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ branches: - dev-build-test environment: - nodejs_version: "5" + nodejs_version: "6" matrix: - COMPONENT_NAME: ng2-components @@ -17,7 +17,7 @@ install: # Get the latest stable version of Node.js or io.js - ps: Install-Product node $env:nodejs_version # install module - - IF %COMPONENT_NAME% EQU ng2-components (./scripts/npm-build-all.sh -t) + - IF %COMPONENT_NAME% EQU ng2-components (cd scripts && sh npm-build-all.sh -t) - IF %COMPONENT_NAME% EQU ng2-demo-shell (cd demo-shell-ng2 && npm install && npm run test || exit 1) # Don't actually build. diff --git a/demo-shell-ng2/config/webpack.common.js b/demo-shell-ng2/config/webpack.common.js index 823be9bd44..4c2374ddb9 100644 --- a/demo-shell-ng2/config/webpack.common.js +++ b/demo-shell-ng2/config/webpack.common.js @@ -41,7 +41,7 @@ module.exports = { { enforce: 'pre', test: /\.js$/, - include: [helpers.root('app')], + include: [helpers.root('app'), helpers.root('../ng2-components')], loader: 'source-map-loader', exclude: [ /node_modules/, /public/, /resources/, /dist/] }, @@ -105,10 +105,7 @@ module.exports = { } ] }, - resolve: { - extensions: ['.ts', '.js'], - modules: [helpers.root('../ng2-components'), helpers.root('node_modules')] - }, + plugins: [ // Workaround for angular/angular#11580 new webpack.ContextReplacementPlugin( diff --git a/demo-shell-ng2/config/webpack.dev.js b/demo-shell-ng2/config/webpack.dev.js index 654d3b8b7b..a0192ecaed 100644 --- a/demo-shell-ng2/config/webpack.dev.js +++ b/demo-shell-ng2/config/webpack.dev.js @@ -6,6 +6,11 @@ const helpers = require('./helpers'); module.exports = webpackMerge(commonConfig, { devtool: 'cheap-module-eval-source-map', + resolve: { + extensions: ['.ts', '.js'], + modules: [helpers.root('../ng2-components'), helpers.root('node_modules')] + }, + output: { path: helpers.root('dist'), filename: '[name].js', diff --git a/demo-shell-ng2/config/webpack.prod.js b/demo-shell-ng2/config/webpack.prod.js index 600823350e..d39bcc9dc8 100644 --- a/demo-shell-ng2/config/webpack.prod.js +++ b/demo-shell-ng2/config/webpack.prod.js @@ -16,6 +16,11 @@ module.exports = webpackMerge(commonConfig, { chunkFilename: '[id].[hash].chunk.js' }, + resolve: { + extensions: ['.ts', '.js'], + modules: [helpers.root('node_modules')] + }, + plugins: [ new webpack.NoEmitOnErrorsPlugin(), new webpack.optimize.UglifyJsPlugin({ // https://github.com/angular/angular/issues/10618 diff --git a/demo-shell-ng2/package.json b/demo-shell-ng2/package.json index cadb3a3afd..6e5d338e43 100644 --- a/demo-shell-ng2/package.json +++ b/demo-shell-ng2/package.json @@ -5,8 +5,10 @@ "author": "Alfresco Software, Ltd.", "scripts": { "build": "rimraf dist && webpack --config config/webpack.prod.js --progress --profile --bail", - "start": "npm run server-versions && node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js --progress", + "build:dev": "rimraf dist && webpack --config config/webpack.dev.js --progress --profile --bail", "start:dist": "wsrv -s dist/ -p 3000 -a 0.0.0.0", + "start": "npm run server-versions && node --max_old_space_size=4096 webpack-dev-server --progress -config config/webpack.prod.js", + "start:dev": "npm run server-versions && node --max_old_space_size=4096 webpack-dev-server --progress -config config/webpack.dev.js", "test": "rimraf coverage && karma start --single-run", "clean": "npm run clean-build && rimraf dist node_modules typings dist", "clean-build": "rimraf 'app/{,**/}**.js' 'app/{,**/}**.js.map' 'app/{,**/}**.d.ts'", diff --git a/ng2-components/config/karma.conf-all.js b/ng2-components/config/karma.conf-all.js new file mode 100644 index 0000000000..fd07cca849 --- /dev/null +++ b/ng2-components/config/karma.conf-all.js @@ -0,0 +1,108 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '../ng2-components', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + {pattern: './node_modules/hammerjs/hammer.js', included: true, watched: false}, + + //diagrams + {pattern: './node_modules/chart.js/dist/Chart.js', included: true, watched: false}, + {pattern: './node_modules/alfresco-js-api/dist/alfresco-js-api.js', included: true, watched: false}, + {pattern: './node_modules/raphael/raphael.js', included: true, watched: false}, + {pattern: './node_modules/moment/min/moment.min.js', included: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', included: true, watched: false}, + + {pattern: './node_modules/ng2-translate/ng2-translate.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/bundles/ng2-charts.umd.js', included: false, served: true, watched: false}, + + // pdf-js + {pattern: './node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false}, + {pattern: './node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false}, + {pattern: './node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false}, + + {pattern: config.component +'/karma-test-shim.js', watched: false}, + {pattern: './ng2-**/src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './ng2-**/src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + noInfo: true, + stats: { + chunks: false + } + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: false, + + captureTimeout: 1800000, + browserDisconnectTimeout: 1800000, + browserDisconnectTolerance: 10, + browserNoActivityTimeout: 3000000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('../node_modules/karma-jasmine'), + require('../node_modules/karma-coverage'), + require('../node_modules/karma-sourcemap-loader'), + require('../node_modules/karma-jasmine-ajax'), + require('../node_modules/karma-chrome-launcher'), + require('../node_modules/karma-mocha-reporter'), + require('../node_modules/karma-webpack'), + require('../node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + '**/karma-test-shim.js': ['webpack'], + '(ng2-alfresco|ng2-activiti)/src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: './coverage/', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/config/karma.conf.js b/ng2-components/config/karma.conf.js deleted file mode 100644 index 5cfbeb6d87..0000000000 --- a/ng2-components/config/karma.conf.js +++ /dev/null @@ -1,114 +0,0 @@ -var webpackConfig = require('./webpack.test'); - -module.exports = function (config) { - var _config = { - basePath: '../' + config.component, - - frameworks: ['jasmine-ajax', 'jasmine'], - - files: [ - '../node_modules/hammerjs/hammer.js', - - //diagrams - '../node_modules/chart.js/dist/Chart.js', - '../node_modules/alfresco-js-api/dist/alfresco-js-api.js', - '../node_modules/raphael/raphael.js', - '../node_modules/moment/min/moment.min.js', - '../node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', - - {pattern: '../node_modules/ng2-translate/**/*.js', included: false, watched: false}, - {pattern: '../node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, - {pattern: '../node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, - {pattern: '../node_modules/moment/**/*.js', included: false, served: true, watched: false}, - - // pdf-js - '../node_modules/pdfjs-dist/build/pdf.js', - '../node_modules/pdfjs-dist/build/pdf.worker.js', - '../node_modules/pdfjs-dist/web/pdf_viewer.js', - - {pattern: 'karma-test-shim.js', watched: false}, - {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, - {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, - {pattern: './dist/**/*.js', included: false, served: true, watched: false}, - {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, - {pattern: './src/**/*.ts', included: false, served: true, watched: false} - ], - - client: { - component: config.component - }, - - webpack: webpackConfig, - - webpackMiddleware: { - stats: 'errors-only' - }, - - port: 9876, - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - colors: true, - - autoWatch: true, - - captureTimeout: 180000, - browserDisconnectTimeout: 180000, - browserDisconnectTolerance: 3, - browserNoActivityTimeout: 300000, - - browsers: ['Chrome'], - - customLaunchers: { - Chrome_travis_ci: { - base: 'Chrome', - flags: ['--no-sandbox'] - } - }, - - // Karma plugins loaded - plugins: [ - require('../node_modules/karma-jasmine'), - require('../node_modules/karma-coverage'), - require('../node_modules/karma-sourcemap-loader'), - require('../node_modules/karma-jasmine-ajax'), - require('../node_modules/karma-chrome-launcher'), - require('../node_modules/karma-mocha-reporter'), - require('../node_modules/karma-webpack'), - require('../node_modules/karma-jasmine-html-reporter') - ], - - webpackServer: { - noInfo: true - }, - - // Coverage reporter generates the coverage - reporters: ['mocha', 'coverage', 'kjhtml'], - - preprocessors: { - 'karma-test-shim.js': ['webpack', 'sourcemap'], - './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' - }, - - coverageReporter: { - includeAllSources: true, - dir: '../' + config.component + '/coverage/', - subdir: 'report', - reporters: [ - {type: 'text'}, - {type: 'text-summary'}, - {type: 'json', file: 'coverage-final.json'}, - {type: 'html'}, - {type: 'lcov'} - ] - } - }; - - if (process.env.TRAVIS) { - config.browsers = ['Chrome_travis_ci']; - } - - config.set(_config); -}; diff --git a/ng2-components/config/webpack.common.js b/ng2-components/config/webpack.common.js index 80773b1f73..95cd33177e 100644 --- a/ng2-components/config/webpack.common.js +++ b/ng2-components/config/webpack.common.js @@ -17,6 +17,7 @@ module.exports = { /^\@angular\//, /^rxjs\//, 'moment', + 'raphael', 'ng2-charts', 'alfresco-js-api', 'ng2-alfresco-core', @@ -39,17 +40,17 @@ module.exports = { { enforce: 'pre', test: /\.ts$/, - loader: 'tslint-loader', - options: { - emitErrors: true, - configFile: path.resolve(__dirname, './assets/tslint.json') - }, + use: 'source-map-loader', exclude: [/node_modules/, /bundles/, /dist/, /demo/] }, { enforce: 'pre', test: /\.ts$/, - use: 'source-map-loader', + loader: 'tslint-loader', + options: { + emitErrors: true, + configFile: path.resolve(__dirname, './assets/tslint.json') + }, exclude: [/node_modules/, /bundles/, /dist/, /demo/] }, { @@ -107,20 +108,11 @@ module.exports = { new webpack.BannerPlugin(fs.readFileSync(path.resolve(__dirname, './assets/license_header_add.txt'), 'utf8')), - // Workaround for angular/angular#11580 new webpack.ContextReplacementPlugin( - // The (\\|\/) piece accounts for path separators in *nix and Windows - /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, - helpers.root('src'), // location of your src - {} // a map of your routes - ), - - new webpack.LoaderOptionsPlugin({ - htmlLoader: { - minimize: false // workaround for ng2 - } - }) - + /angular(\\|\/)core(\\|\/)@angular/, + helpers.root('./src'), + {} + ) ], devtool: 'cheap-module-source-map', diff --git a/ng2-components/config/webpack.test.js b/ng2-components/config/webpack.test.js index 3893598d18..486fed8c15 100644 --- a/ng2-components/config/webpack.test.js +++ b/ng2-components/config/webpack.test.js @@ -23,7 +23,7 @@ module.exports = { }, { test: /\.ts$/, - loaders: ['ts-loader', 'angular2-template-loader'], + loaders: ['ts-loader?' + JSON.stringify({ transpileOnly: true}), 'angular2-template-loader'], exclude: [/node_modules/, /bundles/, /dist/, /demo/] }, { @@ -52,8 +52,7 @@ module.exports = { loader: 'istanbul-instrumenter-loader', exclude: [ /node_modules/, - /test/, - /spec\.ts$/ + /test/ ] } ] @@ -62,12 +61,10 @@ module.exports = { plugins: [ new webpack.NoEmitOnErrorsPlugin(), - // Workaround for angular/angular#11580 new webpack.ContextReplacementPlugin( - // The (\\|\/) piece accounts for path separators in *nix and Windows - /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, - helpers.root('src'), // location of your src - {} // a map of your routes + /angular(\\|\/)core(\\|\/)@angular/, + helpers.root('./src'), + {} ), new webpack.DefinePlugin({ 'process.env': { @@ -75,11 +72,10 @@ module.exports = { } }), new webpack.LoaderOptionsPlugin({ - htmlLoader: { - minimize: false // workaround for ng2 - } + htmlLoader: { + minimize: false // workaround for ng2 + } }) - ], node: { diff --git a/ng2-components/karma.conf.js b/ng2-components/karma.conf.js new file mode 100644 index 0000000000..28ded64e4a --- /dev/null +++ b/ng2-components/karma.conf.js @@ -0,0 +1 @@ +module.exports = require('./config/karma.conf-all.js'); diff --git a/ng2-components/ng2-activiti-analytics/karma-test-shim.js b/ng2-components/ng2-activiti-analytics/karma-test-shim.js index bd31cd0284..a09906cdc6 100644 --- a/ng2-components/ng2-activiti-analytics/karma-test-shim.js +++ b/ng2-components/ng2-activiti-analytics/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-activiti-analytics/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-activiti-analytics/karma.conf.js b/ng2-components/ng2-activiti-analytics/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-activiti-analytics/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-activiti-analytics/package.json b/ng2-components/ng2-activiti-analytics/package.json index 1602b740e2..fb4856090f 100644 --- a/ng2-components/ng2-activiti-analytics/package.json +++ b/ng2-components/ng2-activiti-analytics/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-activiti-analytics", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-activiti-analytics", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-activiti-analytics.js", "contributors": [ @@ -63,18 +60,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "^3.8.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "tag", diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts index 27052caaef..1d77731e12 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.spec.ts @@ -72,7 +72,9 @@ describe('AnalyticsGeneratorComponent', () => { let translateService = TestBed.get(AlfrescoTranslationService); spyOn(translateService, 'addTranslationFolder').and.stub(); - spyOn(translateService, 'get').and.callFake((key) => { return Observable.of(key); }); + spyOn(translateService, 'get').and.callFake((key) => { + return Observable.of(key); + }); })); beforeEach(() => { @@ -80,184 +82,201 @@ describe('AnalyticsGeneratorComponent', () => { component = fixture.componentInstance; debug = fixture.debugElement; element = fixture.nativeElement; - fixture.detectChanges(); componentHandler = jasmine.createSpyObj('componentHandler', [ 'upgradeAllRegistered' ]); window['componentHandler'] = componentHandler; + + fixture.detectChanges(); + + jasmine.Ajax.install(); }); - describe('Rendering tests', () => { - beforeEach(() => { - jasmine.Ajax.install(); + afterEach(() => { + jasmine.Ajax.uninstall(); + }); + + it('Should render the Process definition overview report ', (done) => { + component.onSuccess.subscribe((res) => { + expect(res).toBeDefined(); + expect(res.length).toEqual(3); + + expect(res[0]).toBeDefined(); + expect(res[0].type).toEqual('table'); + expect(res[0].datasets).toBeDefined(); + expect(res[0].datasets.length).toEqual(4); + expect(res[0].datasets[0][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-DEFINITIONS'); + expect(res[0].datasets[0][1]).toEqual('9'); + expect(res[0].datasets[1][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-INSTANCES'); + expect(res[0].datasets[1][1]).toEqual('41'); + expect(res[0].datasets[2][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-ACTIVE-PROCESS-INSTANCES'); + expect(res[0].datasets[2][1]).toEqual('3'); + expect(res[0].datasets[3][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-COMPLETED-PROCESS-INSTANCES'); + expect(res[0].datasets[3][1]).toEqual('38'); + + expect(res[1]).toBeDefined(); + expect(res[1].type).toEqual('pie'); + + expect(res[2]).toBeDefined(); + expect(res[2].type).toEqual('table'); + + done(); }); - afterEach(() => { - jasmine.Ajax.uninstall(); - }); + component.reportId = 1001; + component.reportParamQuery = new ReportQuery({status: 'All'}); + component.ngOnChanges(); - it('Should render the Process definition overview report ', (done) => { - component.onSuccess.subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(3); - - expect(res[0]).toBeDefined(); - expect(res[0].type).toEqual('table'); - expect(res[0].datasets).toBeDefined(); - expect(res[0].datasets.length).toEqual(4); - expect(res[0].datasets[0][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-DEFINITIONS'); - expect(res[0].datasets[0][1]).toEqual('9'); - expect(res[0].datasets[1][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-INSTANCES'); - expect(res[0].datasets[1][1]).toEqual('41'); - expect(res[0].datasets[2][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-ACTIVE-PROCESS-INSTANCES'); - expect(res[0].datasets[2][1]).toEqual('3'); - expect(res[0].datasets[3][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-COMPLETED-PROCESS-INSTANCES'); - expect(res[0].datasets[3][1]).toEqual('38'); - - expect(res[1]).toBeDefined(); - expect(res[1].type).toEqual('pie'); - - expect(res[2]).toBeDefined(); - expect(res[2].type).toEqual('table'); - - done(); - }); - - let reportId = 1001; - let reportParamQuery = new ReportQuery({status: 'All'}); - - component.generateReport(reportId, reportParamQuery); + fixture.detectChanges(); + fixture.whenStable().then(() => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', responseText: analyticMock.chartProcessDefOverview }); }); + }); - it('Should render the Process definition overview report when onchanges is called ', (done) => { - component.onSuccess.subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(3); + it('Should render the Process definition overview report when onchanges is called ', (done) => { + component.onSuccess.subscribe((res) => { + expect(res).toBeDefined(); + expect(res.length).toEqual(3); - expect(res[0]).toBeDefined(); - expect(res[0].type).toEqual('table'); - expect(res[0].datasets).toBeDefined(); - expect(res[0].datasets.length).toEqual(4); - expect(res[0].datasets[0][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-DEFINITIONS'); - expect(res[0].datasets[0][1]).toEqual('9'); - expect(res[0].datasets[1][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-INSTANCES'); - expect(res[0].datasets[1][1]).toEqual('41'); - expect(res[0].datasets[2][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-ACTIVE-PROCESS-INSTANCES'); - expect(res[0].datasets[2][1]).toEqual('3'); - expect(res[0].datasets[3][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-COMPLETED-PROCESS-INSTANCES'); - expect(res[0].datasets[3][1]).toEqual('38'); + expect(res[0]).toBeDefined(); + expect(res[0].type).toEqual('table'); + expect(res[0].datasets).toBeDefined(); + expect(res[0].datasets.length).toEqual(4); + expect(res[0].datasets[0][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-DEFINITIONS'); + expect(res[0].datasets[0][1]).toEqual('9'); + expect(res[0].datasets[1][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-TOTAL-PROCESS-INSTANCES'); + expect(res[0].datasets[1][1]).toEqual('41'); + expect(res[0].datasets[2][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-ACTIVE-PROCESS-INSTANCES'); + expect(res[0].datasets[2][1]).toEqual('3'); + expect(res[0].datasets[3][0]).toEqual('__KEY_REPORTING.DEFAULT-REPORTS.PROCESS-DEFINITION-OVERVIEW.GENERAL-TABLE-COMPLETED-PROCESS-INSTANCES'); + expect(res[0].datasets[3][1]).toEqual('38'); - expect(res[1]).toBeDefined(); - expect(res[1].type).toEqual('pie'); + expect(res[1]).toBeDefined(); + expect(res[1].type).toEqual('pie'); - expect(res[2]).toBeDefined(); - expect(res[2].type).toEqual('table'); + expect(res[2]).toBeDefined(); + expect(res[2].type).toEqual('table'); - done(); - }); + done(); + }); - component.reportId = 1001; - component.reportParamQuery = new ReportQuery({status: 'All'}); - component.ngOnChanges(); + component.reportId = 1001; + component.reportParamQuery = new ReportQuery({status: 'All'}); + component.ngOnChanges(); + fixture.detectChanges(); + + fixture.whenStable().then(() => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', responseText: analyticMock.chartProcessDefOverview }); }); + }); - it('Should render the Task overview report ', (done) => { - component.onSuccess.subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(3); + it('Should render the Task overview report ', (done) => { + component.onSuccess.subscribe((res) => { + expect(res).toBeDefined(); + expect(res.length).toEqual(3); - expect(res[0]).toBeDefined(); - expect(res[0].type).toEqual('bar'); - expect(res[0].labels).toBeDefined(); - expect(res[0].labels.length).toEqual(2); - expect(res[0].labels[0]).toEqual('2016-09-30T00:00:00.000+0000'); - expect(res[0].labels[1]).toEqual('2016-10-04T00:00:00.000+0000'); - expect(res[0].datasets[0].label).toEqual('series1'); - expect(res[0].datasets[0].data[0]).toEqual(3); - expect(res[0].datasets[0].data[1]).toEqual(1); + expect(res[0]).toBeDefined(); + expect(res[0].type).toEqual('bar'); + expect(res[0].labels).toBeDefined(); + expect(res[0].labels.length).toEqual(2); + expect(res[0].labels[0]).toEqual('2016-09-30T00:00:00.000+0000'); + expect(res[0].labels[1]).toEqual('2016-10-04T00:00:00.000+0000'); + expect(res[0].datasets[0].label).toEqual('series1'); + expect(res[0].datasets[0].data[0]).toEqual(3); + expect(res[0].datasets[0].data[1]).toEqual(1); - expect(res[1]).toBeDefined(); - expect(res[1].type).toEqual('masterDetailTable'); - expect(res[1].datasets).toBeDefined(); - expect(res[1].datasets.length).toEqual(2); - expect(res[1].datasets[0][0]).toEqual('fake 1 user task'); - expect(res[1].datasets[0][1]).toEqual('1'); - expect(res[1].datasets[0][2]).toEqual('2.0'); - expect(res[1].datasets[0][3]).toEqual('3.0'); - expect(res[1].datasets[0][4]).toEqual('4.0'); - expect(res[1].datasets[0][5]).toEqual('5.0'); - expect(res[1].datasets[0][6]).toEqual('6.0'); - expect(res[1].datasets[1][0]).toEqual('fake 2 user task'); - expect(res[1].datasets[1][1]).toEqual('1'); - expect(res[1].datasets[1][2]).toEqual('2.0'); - expect(res[1].datasets[1][3]).toEqual('3.0'); - expect(res[1].datasets[1][4]).toEqual('4.0'); - expect(res[1].datasets[1][5]).toEqual('5.0'); - expect(res[1].datasets[1][6]).toEqual('6.0'); + expect(res[1]).toBeDefined(); + expect(res[1].type).toEqual('masterDetailTable'); + expect(res[1].datasets).toBeDefined(); + expect(res[1].datasets.length).toEqual(2); + expect(res[1].datasets[0][0]).toEqual('fake 1 user task'); + expect(res[1].datasets[0][1]).toEqual('1'); + expect(res[1].datasets[0][2]).toEqual('2.0'); + expect(res[1].datasets[0][3]).toEqual('3.0'); + expect(res[1].datasets[0][4]).toEqual('4.0'); + expect(res[1].datasets[0][5]).toEqual('5.0'); + expect(res[1].datasets[0][6]).toEqual('6.0'); + expect(res[1].datasets[1][0]).toEqual('fake 2 user task'); + expect(res[1].datasets[1][1]).toEqual('1'); + expect(res[1].datasets[1][2]).toEqual('2.0'); + expect(res[1].datasets[1][3]).toEqual('3.0'); + expect(res[1].datasets[1][4]).toEqual('4.0'); + expect(res[1].datasets[1][5]).toEqual('5.0'); + expect(res[1].datasets[1][6]).toEqual('6.0'); - expect(res[2]).toBeDefined(); - expect(res[2].type).toEqual('multiBar'); - expect(res[2].labels).toBeDefined(); - expect(res[2].labels.length).toEqual(3); - expect(res[2].labels[0]).toEqual(1); - expect(res[2].labels[1]).toEqual(2); - expect(res[2].labels[2]).toEqual(3); - expect(res[2].datasets[0].label).toEqual('averages'); - expect(res[2].datasets[0].data[0]).toEqual(0); - expect(res[2].datasets[0].data[1]).toEqual(5); - expect(res[2].datasets[0].data[2]).toEqual(2); - expect(res[2].datasets[1].label).toEqual('minima'); - expect(res[2].datasets[1].data[0]).toEqual(0); - expect(res[2].datasets[1].data[1]).toEqual(0); - expect(res[2].datasets[1].data[2]).toEqual(0); - expect(res[2].datasets[2].label).toEqual('maxima'); - expect(res[2].datasets[2].data[0]).toEqual(0); - expect(res[2].datasets[2].data[1]).toEqual(29); - expect(res[2].datasets[2].data[2]).toEqual(29); + expect(res[2]).toBeDefined(); + expect(res[2].type).toEqual('multiBar'); + expect(res[2].labels).toBeDefined(); + expect(res[2].labels.length).toEqual(3); + expect(res[2].labels[0]).toEqual(1); + expect(res[2].labels[1]).toEqual(2); + expect(res[2].labels[2]).toEqual(3); + expect(res[2].datasets[0].label).toEqual('averages'); + expect(res[2].datasets[0].data[0]).toEqual(0); + expect(res[2].datasets[0].data[1]).toEqual(5); + expect(res[2].datasets[0].data[2]).toEqual(2); + expect(res[2].datasets[1].label).toEqual('minima'); + expect(res[2].datasets[1].data[0]).toEqual(0); + expect(res[2].datasets[1].data[1]).toEqual(0); + expect(res[2].datasets[1].data[2]).toEqual(0); + expect(res[2].datasets[2].label).toEqual('maxima'); + expect(res[2].datasets[2].data[0]).toEqual(0); + expect(res[2].datasets[2].data[1]).toEqual(29); + expect(res[2].datasets[2].data[2]).toEqual(29); - done(); - }); + done(); + }); - let reportParamQuery = new ReportQuery({status: 'All'}); - component.reportId = 1; - component.generateReport(reportParamQuery); + component.reportId = 1; + component.reportParamQuery = new ReportQuery({status: 'All'}); + component.ngOnChanges(); + fixture.detectChanges(); + + fixture.whenStable().then(() => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', responseText: analyticMock.chartTaskOverview }); }); + }); - it('Should reset the reports when the onChanged is call', () => { - component.reports = [ new Chart({id: 'fake', type: 'fake-type'})]; - component.reportId = 1; - component.ngOnChanges(); + it('Should reset the reports when the onChanged is call', () => { + component.reports = [new Chart({id: 'fake', type: 'fake-type'})]; + component.reportId = 1; + component.ngOnChanges(); + + fixture.detectChanges(); + + fixture.whenStable().then(() => { expect(component.reports).toBeUndefined(); }); + }); - it('Should emit onError event with a 404 response ', (done) => { - component.onError.subscribe((err) => { - expect(err).toBeDefined(); - done(); - }); + it('Should emit onError event with a 404 response ', (done) => { + component.onError.subscribe((err) => { + expect(err).toBeDefined(); + done(); + }); - let reportParamQuery = new ReportQuery({status: 'All'}); - component.reportId = 1; - component.generateReport(reportParamQuery); + component.reportId = 1; + component.reportParamQuery = new ReportQuery({status: 'All'}); + component.ngOnChanges(); + fixture.detectChanges(); + + fixture.whenStable().then(() => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 404, contentType: 'json', diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts index 3b6deed822..7fc8734875 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts @@ -462,11 +462,13 @@ describe('AnalyticsReportParametersComponent', () => { let change = new SimpleChange(null, reportId, true); component.ngOnChanges({ 'reportId': change }); fixture.detectChanges(); + jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', responseText: analyticParamsMock.reportDefParamStatus }); + fixture.whenStable().then(() => { component.toggleParameters(); component.reportId = '1'; @@ -481,7 +483,7 @@ describe('AnalyticsReportParametersComponent', () => { validForm = true; }); - it('Should be able to change the report title', (done) => { + xit('Should be able to change the report title', (done) => { let title: HTMLElement = element.querySelector('h4'); title.click(); diff --git a/ng2-components/ng2-activiti-analytics/webpack.test.js b/ng2-components/ng2-activiti-analytics/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-activiti-analytics/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-activiti-diagrams/karma-test-shim.js b/ng2-components/ng2-activiti-diagrams/karma-test-shim.js index 8bc60175b2..a09906cdc6 100644 --- a/ng2-components/ng2-activiti-diagrams/karma-test-shim.js +++ b/ng2-components/ng2-activiti-diagrams/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-activiti-diagrams/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-activiti-diagrams/karma.conf.js b/ng2-components/ng2-activiti-diagrams/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-activiti-diagrams/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-activiti-diagrams/package.json b/ng2-components/ng2-activiti-diagrams/package.json index 2e3fa1eaf7..b0afdc37b8 100644 --- a/ng2-components/ng2-activiti-diagrams/package.json +++ b/ng2-components/ng2-activiti-diagrams/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-activiti-diagrams", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-activiti-diagrams", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-activiti-diagrams.js", "contributors": [ @@ -54,18 +51,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "^3.8.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "tag", diff --git a/ng2-components/ng2-activiti-diagrams/webpack.test.js b/ng2-components/ng2-activiti-diagrams/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-activiti-diagrams/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-activiti-form/karma-test-shim.js b/ng2-components/ng2-activiti-form/karma-test-shim.js index 1fe35e272a..a09906cdc6 100644 --- a/ng2-components/ng2-activiti-form/karma-test-shim.js +++ b/ng2-components/ng2-activiti-form/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-activiti-form/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-activiti-form/karma.conf.js b/ng2-components/ng2-activiti-form/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-activiti-form/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-activiti-form/package.json b/ng2-components/ng2-activiti-form/package.json index 6238621ad6..0c55c2263e 100644 --- a/ng2-components/ng2-activiti-form/package.json +++ b/ng2-components/ng2-activiti-form/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-activiti-form", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-activiti-form", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-activiti-form.js", "repository": { @@ -62,18 +59,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "^3.8.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-activiti-form/webpack.test.js b/ng2-components/ng2-activiti-form/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-activiti-form/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-activiti-processlist/karma-test-shim.js b/ng2-components/ng2-activiti-processlist/karma-test-shim.js index 4639fe986a..a09906cdc6 100644 --- a/ng2-components/ng2-activiti-processlist/karma-test-shim.js +++ b/ng2-components/ng2-activiti-processlist/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-activiti-processlist/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-activiti-processlist/karma.conf.js b/ng2-components/ng2-activiti-processlist/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-activiti-processlist/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-activiti-processlist/package.json b/ng2-components/ng2-activiti-processlist/package.json index ffe4c2cc59..eab4799cf7 100644 --- a/ng2-components/ng2-activiti-processlist/package.json +++ b/ng2-components/ng2-activiti-processlist/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-activiti-processlist", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-activiti-processlist", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-activiti-processlist.js", "repository": { @@ -64,18 +61,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "^3.8.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-activiti-processlist/webpack.test.js b/ng2-components/ng2-activiti-processlist/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-activiti-processlist/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-activiti-tasklist/karma-test-shim.js b/ng2-components/ng2-activiti-tasklist/karma-test-shim.js index a18cfe9c2c..a09906cdc6 100644 --- a/ng2-components/ng2-activiti-tasklist/karma-test-shim.js +++ b/ng2-components/ng2-activiti-tasklist/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-activiti-tasklist/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-activiti-tasklist/karma.conf.js b/ng2-components/ng2-activiti-tasklist/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-activiti-tasklist/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-activiti-tasklist/package.json b/ng2-components/ng2-activiti-tasklist/package.json index f723e8f4db..ec2cef9b51 100644 --- a/ng2-components/ng2-activiti-tasklist/package.json +++ b/ng2-components/ng2-activiti-tasklist/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-activiti-tasklist", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-activiti-tasklist", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-activiti-tasklist.js", "repository": { @@ -68,18 +65,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-activiti-tasklist/webpack.test.js b/ng2-components/ng2-activiti-tasklist/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-activiti-tasklist/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-core/karma-test-shim.js b/ng2-components/ng2-alfresco-core/karma-test-shim.js index 3fd44b2d86..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-core/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-core/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-core/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-core/karma.conf.js b/ng2-components/ng2-alfresco-core/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-core/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-core/package.json b/ng2-components/ng2-alfresco-core/package.json index 390c092c63..02694955f9 100644 --- a/ng2-components/ng2-alfresco-core/package.json +++ b/ng2-components/ng2-alfresco-core/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-core", - "test-browser": "./node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-core", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-core.js", "repository": { @@ -74,18 +71,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-core/webpack.test.js b/ng2-components/ng2-alfresco-core/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-core/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-datatable/karma-test-shim.js b/ng2-components/ng2-alfresco-datatable/karma-test-shim.js index fca731ab6b..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-datatable/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-datatable/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-datatable/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-datatable/karma.conf.js b/ng2-components/ng2-alfresco-datatable/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-datatable/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-datatable/package.json b/ng2-components/ng2-alfresco-datatable/package.json index 90f17f4484..53d069c26e 100644 --- a/ng2-components/ng2-alfresco-datatable/package.json +++ b/ng2-components/ng2-alfresco-datatable/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-datatable", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-datatable", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-datatable.js", "repository": { @@ -60,18 +57,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-datatable/webpack.test.js b/ng2-components/ng2-alfresco-datatable/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-datatable/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-documentlist/karma-test-shim.js b/ng2-components/ng2-alfresco-documentlist/karma-test-shim.js index f7be58e211..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-documentlist/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-documentlist/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-documentlist/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-documentlist/karma.conf.js b/ng2-components/ng2-alfresco-documentlist/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-documentlist/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-documentlist/package.json b/ng2-components/ng2-alfresco-documentlist/package.json index e4152094da..f942497c52 100644 --- a/ng2-components/ng2-alfresco-documentlist/package.json +++ b/ng2-components/ng2-alfresco-documentlist/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-documentlist", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-documentlist", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-documentlist.js", "repository": { @@ -69,18 +66,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-documentlist/webpack.test.js b/ng2-components/ng2-alfresco-documentlist/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-documentlist/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-login/README.md b/ng2-components/ng2-alfresco-login/README.md index 98921b5be6..d06660d9e5 100644 --- a/ng2-components/ng2-alfresco-login/README.md +++ b/ng2-components/ng2-alfresco-login/README.md @@ -166,8 +166,8 @@ platformBrowserDynamic().bootstrapModule(AppModule); | `logoImageUrl` | string | Alfresco logo image | To change the logo image with a customised image | | `backgroundImageUrl` | string | Alfresco background image | To change the background image with a customised image | | `fieldsValidation` | { [key: string]: any; }, extra?: { [key: string]: any; } | | Use it to customise the validation rules of the login form | -| `showRememberMe` | boolean | true | Toggle `Remember me` checkbox visibility | -| `showLoginActions` | boolean | true | Toggle extra actions visibility (`Need Help`, `Register`, etc.) | +| `showRememberMe` | boolean | false | Toggle `Remember me` checkbox visibility | +| `showLoginActions` | boolean | false | Toggle extra actions visibility (`Need Help`, `Register`, etc.) | #### Events diff --git a/ng2-components/ng2-alfresco-login/karma-test-shim.js b/ng2-components/ng2-alfresco-login/karma-test-shim.js index f9bb186595..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-login/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-login/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-login/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-login/karma.conf.js b/ng2-components/ng2-alfresco-login/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-login/package.json b/ng2-components/ng2-alfresco-login/package.json index bd57a3d986..3645169ca9 100644 --- a/ng2-components/ng2-alfresco-login/package.json +++ b/ng2-components/ng2-alfresco-login/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-login", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-login", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-login.js", "repository": { @@ -71,19 +68,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "concurrently": "^2.2.0", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-login/webpack.test.js b/ng2-components/ng2-alfresco-login/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-search/karma-test-shim.js b/ng2-components/ng2-alfresco-search/karma-test-shim.js index 47bc89a346..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-search/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-search/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-search/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-search/karma.conf.js b/ng2-components/ng2-alfresco-search/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-search/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-search/package.json b/ng2-components/ng2-alfresco-search/package.json index 65c7856605..310a41da92 100644 --- a/ng2-components/ng2-alfresco-search/package.json +++ b/ng2-components/ng2-alfresco-search/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-search", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-search", + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-search.js", "repository": { @@ -70,18 +67,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-search/webpack.test.js b/ng2-components/ng2-alfresco-search/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-search/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-social/karma-test-shim.js b/ng2-components/ng2-alfresco-social/karma-test-shim.js index 8aa8c354b0..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-social/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-social/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-social/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-social/karma.conf.js b/ng2-components/ng2-alfresco-social/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-social/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-social/package.json b/ng2-components/ng2-alfresco-social/package.json index 7a480c3150..4e5281439c 100644 --- a/ng2-components/ng2-alfresco-social/package.json +++ b/ng2-components/ng2-alfresco-social/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-social", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-social", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-social.js", "repository": { @@ -47,46 +44,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "concurrently": "^2.2.0", - "cpx": "^1.3.1", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", "cssnano": "^3.8.1", - "gulp": "^3.9.1", - "gulp-autoprefixer": "^3.1.1", - "gulp-cached": "^1.1.1", - "gulp-concat": "^2.6.1", - "gulp-concat-css": "^2.3.0", - "gulp-filter": "^4.0.0", - "gulp-inline-ng2-template": "^4.0.0", - "gulp-load-plugins": "^1.4.0", - "gulp-plumber": "^1.1.0", - "gulp-postcss": "^6.2.0", - "gulp-replace": "^0.5.4", - "gulp-sourcemaps": "^1.9.1", - "gulp-template": "^4.0.0", - "gulp-typescript": "^3.1.3", - "gulp-uglify": "^2.0.0", - "gulp-util": "^3.0.7", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", "jasmine-ajax": "^3.2.0", "jasmine-core": "2.4.1", - "karma": "~0.13.22", + "karma": "^0.13.22", "karma-chrome-launcher": "~1.0.1", - "karma-coverage": "^1.0.0", + "karma-coverage": "^1.1.1", "karma-jasmine": "~1.0.2", "karma-jasmine-ajax": "^0.1.13", - "karma-jasmine-html-reporter": "^0.2.0", - "karma-mocha-reporter": "^2.0.3", - "license-check": "^1.0.4", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", "remap-istanbul": "^0.6.3", - "rimraf": "2.5.2", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "^3.8.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "rating", diff --git a/ng2-components/ng2-alfresco-social/webpack.test.js b/ng2-components/ng2-alfresco-social/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-social/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-tag/karma-test-shim.js b/ng2-components/ng2-alfresco-tag/karma-test-shim.js index cf6e0b8fbe..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-tag/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-tag/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-tag/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-tag/karma.conf.js b/ng2-components/ng2-alfresco-tag/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-tag/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-tag/package.json b/ng2-components/ng2-alfresco-tag/package.json index 11767674e8..f141d4cd2c 100644 --- a/ng2-components/ng2-alfresco-tag/package.json +++ b/ng2-components/ng2-alfresco-tag/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-tag", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-tag", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-tag.js", "repository": { @@ -47,18 +44,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "tag", diff --git a/ng2-components/ng2-alfresco-tag/webpack.test.js b/ng2-components/ng2-alfresco-tag/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-tag/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-upload/karma-test-shim.js b/ng2-components/ng2-alfresco-upload/karma-test-shim.js index 40751756b9..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-upload/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-upload/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-upload/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-upload/karma.conf.js b/ng2-components/ng2-alfresco-upload/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-upload/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-upload/package.json b/ng2-components/ng2-alfresco-upload/package.json index 02172f7440..9397c54744 100644 --- a/ng2-components/ng2-alfresco-upload/package.json +++ b/ng2-components/ng2-alfresco-upload/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-upload", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-upload", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-upload.js", "repository": { @@ -69,18 +66,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license-check-config": { "src": [ diff --git a/ng2-components/ng2-alfresco-upload/webpack.test.js b/ng2-components/ng2-alfresco-upload/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-upload/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-userinfo/karma-test-shim.js b/ng2-components/ng2-alfresco-userinfo/karma-test-shim.js index f1f4095a4b..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-userinfo/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-userinfo/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-userinfo/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-userinfo/karma.conf.js b/ng2-components/ng2-alfresco-userinfo/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-userinfo/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-userinfo/package.json b/ng2-components/ng2-alfresco-userinfo/package.json index b1e499cd0c..8dd91e1b9d 100644 --- a/ng2-components/ng2-alfresco-userinfo/package.json +++ b/ng2-components/ng2-alfresco-userinfo/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-userinfo", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-userinfo", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-userinfo.js", "repository": { @@ -47,18 +44,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "userinfo", diff --git a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts index ce3c8ad328..44629559ff 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts @@ -54,7 +54,7 @@ describe('User info component', () => { providers: [ EcmUserService, BpmUserService, - { provide: AlfrescoTranslationService, useClass: TranslationMock } + {provide: AlfrescoTranslationService, useClass: TranslationMock} ] }).compileComponents().then(() => { fixture = TestBed.createComponent(UserInfoComponent); @@ -105,7 +105,7 @@ describe('User info component', () => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'application/json', - responseText: JSON.stringify({ entry: fakeEcmEditedUser }) + responseText: JSON.stringify({entry: fakeEcmEditedUser}) }); fixture.whenStable().then(() => { @@ -125,7 +125,7 @@ describe('User info component', () => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'application/json', - responseText: JSON.stringify({ entry: fakeEcmUser }) + responseText: JSON.stringify({entry: fakeEcmUser}) }); })); @@ -160,7 +160,7 @@ describe('User info component', () => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'application/json', - responseText: JSON.stringify({ entry: fakeEcmUserNoImage }) + responseText: JSON.stringify({entry: fakeEcmUserNoImage}) }); })); @@ -181,88 +181,110 @@ describe('User info component', () => { describe('when user is logged on bpm', () => { - beforeEach(() => { + beforeEach(async(() => { spyOn(stubAuthService, 'isBpmLoggedIn').and.returnValue(true); spyOn(stubAuthService, 'isLoggedIn').and.returnValue(true); jasmine.Ajax.install(); + + userInfoComp.anonymousImageUrl = userInfoComp.anonymousImageUrl.replace('/base/dist', ''); + })); + + afterEach(() => { + jasmine.Ajax.uninstall(); }); - beforeEach(async(() => { - userInfoComp.anonymousImageUrl = userInfoComp.anonymousImageUrl.replace('/base/dist', ''); + it('should show full name next the user image', () => { fixture.detectChanges(); jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'application/json', responseText: JSON.stringify(fakeBpmUser) }); - })); - beforeEach(() => { + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(element.querySelector('#userinfo_container')).toBeDefined(); + expect(element.querySelector('#bpm-username')).toBeDefined(); + expect(element.querySelector('#bpm-username').innerHTML).toContain('fake-bpm-first-name fake-bpm-last-name'); + }); + }); + + it('should get the bpm current user image from the service', () => { fixture.detectChanges(); + jasmine.Ajax.requests.mostRecent().respondWith({ + status: 200, + contentType: 'application/json', + responseText: JSON.stringify(fakeBpmUser) + }); + + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(element.querySelector('#userinfo_container')).toBeDefined(); + expect(element.querySelector('#logged-user-img')).toBeDefined(); + expect(element.querySelector('#logged-user-img').getAttribute('src')) + .toContain('activiti-app/app/rest/admin/profile-picture'); + }); }); - afterEach(() => { - jasmine.Ajax.uninstall(); - }); - - it('should show full name next the user image', async(() => { - expect(element.querySelector('#userinfo_container')).toBeDefined(); - expect(element.querySelector('#bpm-username')).toBeDefined(); - expect(element.querySelector('#bpm-username').innerHTML).toContain('fake-bpm-first-name fake-bpm-last-name'); - - })); - - it('should get the bpm current user image from the service', async(() => { - expect(element.querySelector('#userinfo_container')).toBeDefined(); - expect(element.querySelector('#logged-user-img')).toBeDefined(); - expect(element.querySelector('#logged-user-img').getAttribute('src')) - .toContain('activiti-app/app/rest/admin/profile-picture'); - - })); - - it('should show last name if first name is null', async(() => { + it('should show last name if first name is null', () => { + fixture.detectChanges(); let wrongBpmUser: BpmUserModel = new BpmUserModel({ firstName: null, lastName: 'fake-last-name' }); userInfoComp.bpmUser = wrongBpmUser; + + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(element.querySelector('#userinfo_container')).toBeDefined(); + expect(element.querySelector('#bpm-username')).not.toBeNull(); + expect(element.querySelector('#bpm-username').textContent).toContain('fake-last-name'); + expect(element.querySelector('#bpm-username').textContent).not.toContain('fake-bpm-first-name'); + + }); + }); + + it('should not show first name if it is null string', () => { fixture.detectChanges(); - expect(element.querySelector('#userinfo_container')).toBeDefined(); - expect(element.querySelector('#bpm-username')).not.toBeNull(); - expect(element.querySelector('#bpm-username').textContent).toContain('fake-last-name'); - expect(element.querySelector('#bpm-username').textContent).not.toContain('fake-bpm-first-name'); - - })); - - it('should not show first name if it is null string', async(() => { let wrongFirstNameBpmUser: BpmUserModel = new BpmUserModel({ firstName: 'null', lastName: 'fake-last-name' }); userInfoComp.bpmUser = wrongFirstNameBpmUser; - fixture.detectChanges(); - expect(element.querySelector('#userinfo_container')).toBeDefined(); - expect(element.querySelector('#bpm-full-name')).toBeDefined(); - expect(element.querySelector('#bpm-full-name').textContent).toContain('fake-last-name'); - expect(element.querySelector('#bpm-full-name').textContent).not.toContain('null'); - })); - it('should not show last name if it is null string', async(() => { + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(element.querySelector('#userinfo_container')).toBeDefined(); + expect(element.querySelector('#bpm-full-name')).toBeDefined(); + expect(element.querySelector('#bpm-full-name').textContent).toContain('fake-last-name'); + expect(element.querySelector('#bpm-full-name').textContent).not.toContain('null'); + }); + }); + + it('should not show last name if it is null string', () => { + fixture.detectChanges(); let wrongLastNameBpmUser: BpmUserModel = new BpmUserModel({ firstName: 'fake-first-name', lastName: 'null' }); userInfoComp.bpmUser = wrongLastNameBpmUser; - fixture.detectChanges(); - expect(element.querySelector('#userinfo_container')).toBeDefined(); - expect(element.querySelector('#bpm-full-name')).toBeDefined(); - expect(element.querySelector('#bpm-full-name').textContent).toContain('fake-first-name'); - expect(element.querySelector('#bpm-full-name').textContent).not.toContain('null'); - })); + + fixture.whenStable().then(() => { + fixture.detectChanges(); + expect(element.querySelector('#userinfo_container')).toBeDefined(); + expect(element.querySelector('#bpm-full-name')).toBeDefined(); + expect(element.querySelector('#bpm-full-name').textContent).toContain('fake-first-name'); + expect(element.querySelector('#bpm-full-name').textContent).not.toContain('null'); + }); + }); it('should not show the tabs', () => { fixture.detectChanges(); - expect(element.querySelector('#tab-bar-env').getAttribute('hidden')).not.toBeNull(); + + fixture.whenStable().then(() => { + fixture.detectChanges() + expect(element.querySelector('#tab-bar-env').getAttribute('hidden')).not.toBeNull(); + }); }); }); @@ -282,7 +304,7 @@ describe('User info component', () => { jasmine.Ajax.requests.first().respondWith({ status: 200, contentType: 'application/json', - responseText: JSON.stringify({ entry: fakeEcmUser }) + responseText: JSON.stringify({entry: fakeEcmUser}) }); jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, diff --git a/ng2-components/ng2-alfresco-userinfo/webpack.test.js b/ng2-components/ng2-alfresco-userinfo/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-userinfo/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-viewer/karma-test-shim.js b/ng2-components/ng2-alfresco-viewer/karma-test-shim.js index 0f63f9e77c..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-viewer/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-viewer/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-viewer/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-viewer/karma.conf.js b/ng2-components/ng2-alfresco-viewer/karma.conf.js new file mode 100644 index 0000000000..0266cc71f5 --- /dev/null +++ b/ng2-components/ng2-alfresco-viewer/karma.conf.js @@ -0,0 +1,107 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './dist/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/**/*.*', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-viewer/package.json b/ng2-components/ng2-alfresco-viewer/package.json index 7c65f2ef8a..ee1524a624 100644 --- a/ng2-components/ng2-alfresco-viewer/package.json +++ b/ng2-components/ng2-alfresco-viewer/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-viewer", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-viewer", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run build" }, "main": "bundles/ng2-alfresco-viewer.js", "repository": { @@ -63,30 +60,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "remap-istanbul": "0.6.3", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", - "traceur": "0.0.91", + "to-string-loader": "^1.1.4", + "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" - }, - "license-check-config": { - "src": [ - "./src/**/*.ts", - "!./src/services/rendering-queue.services.ts", - "!./src/services/rendering-queue.services.d.ts" - ], - "path": "assets/license_header.txt", - "blocking": true, - "logInfo": false, - "logError": true + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "license": "Apache-2.0" } diff --git a/ng2-components/ng2-alfresco-viewer/webpack.build.js b/ng2-components/ng2-alfresco-viewer/webpack.build.js index 3158b14ea1..3adbf6284f 100644 --- a/ng2-components/ng2-alfresco-viewer/webpack.build.js +++ b/ng2-components/ng2-alfresco-viewer/webpack.build.js @@ -1,4 +1,4 @@ -const webpack = require("webpack"); +const webpack = require('webpack'); const webpackMerge = require('webpack-merge'); const commonConfig = require('../config/webpack.common.js'); diff --git a/ng2-components/ng2-alfresco-viewer/webpack.test.js b/ng2-components/ng2-alfresco-viewer/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-viewer/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/ng2-alfresco-webscript/karma-test-shim.js b/ng2-components/ng2-alfresco-webscript/karma-test-shim.js index 431139924e..a09906cdc6 100644 --- a/ng2-components/ng2-alfresco-webscript/karma-test-shim.js +++ b/ng2-components/ng2-alfresco-webscript/karma-test-shim.js @@ -11,11 +11,7 @@ require('zone.js/dist/jasmine-patch'); require('zone.js/dist/async-test'); require('zone.js/dist/fake-async-test'); -var path = '../' + __karma__.config.component + '/src'; -console.log('path appContext '+ path); - -var appContext; -appContext = require.context('../ng2-alfresco-webscript/src', true, /\.spec\.ts/); +var appContext = require.context('./src', true, /\.spec\.ts/); appContext.keys().forEach(appContext); diff --git a/ng2-components/ng2-alfresco-webscript/karma.conf.js b/ng2-components/ng2-alfresco-webscript/karma.conf.js new file mode 100644 index 0000000000..f7f5ca66a2 --- /dev/null +++ b/ng2-components/ng2-alfresco-webscript/karma.conf.js @@ -0,0 +1,110 @@ +var webpackConfig = require('./webpack.test'); + +module.exports = function (config) { + var _config = { + basePath: '.', + + frameworks: ['jasmine-ajax', 'jasmine'], + + files: [ + './node_modules/hammerjs/hammer.js', + + //diagrams + './node_modules/chart.js/dist/Chart.js', + './node_modules/alfresco-js-api/dist/alfresco-js-api.js', + './node_modules/raphael/raphael.js', + './node_modules/moment/min/moment.min.js', + './node_modules/md-date-time-picker/dist/js/mdDateTimePicker.js', + + {pattern: './node_modules/ng2-translate/**/*.js', included: false, watched: false}, + {pattern: './node_modules/ng2-charts/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/md-date-time-picker/**/*.js', included: false, served: true, watched: false}, + {pattern: './node_modules/moment/**/*.js', included: false, served: true, watched: false}, + + // pdf-js + './node_modules/pdfjs-dist/build/pdf.js', + './node_modules/pdfjs-dist/build/pdf.worker.js', + './node_modules/pdfjs-dist/web/pdf_viewer.js', + + {pattern: 'karma-test-shim.js', watched: false}, + {pattern: './src/assets/**/*.*', included: false, served: true, watched: false}, + {pattern: './src/i18n/**/*.*', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js', included: false, served: true, watched: false}, + {pattern: './dist/**/*.js.map', included: false, served: true, watched: false}, + {pattern: './src/**/*.ts', included: false, served: true, watched: false} + ], + + webpack: webpackConfig, + + webpackMiddleware: { + stats: 'errors-only' + }, + + port: 9876, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('./node_modules/karma-jasmine'), + require('./node_modules/karma-coverage'), + require('./node_modules/karma-sourcemap-loader'), + require('./node_modules/karma-jasmine-ajax'), + require('./node_modules/karma-chrome-launcher'), + require('./node_modules/karma-mocha-reporter'), + require('./node_modules/karma-webpack'), + require('./node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + // Coverage reporter generates the coverage + reporters: ['mocha', 'coverage', 'kjhtml'], + + preprocessors: { + 'karma-test-shim.js': ['webpack', 'sourcemap'], + './src/**/!(*spec|index|*mock|*model|*event).js': 'coverage' + }, + + coverageReporter: { + includeAllSources: true, + dir: 'coverage', + subdir: 'report', + reporters: [ + {type: 'text'}, + {type: 'text-summary'}, + {type: 'json', file: 'coverage-final.json'}, + {type: 'html'}, + {type: 'lcov'} + ] + } + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); +}; diff --git a/ng2-components/ng2-alfresco-webscript/package.json b/ng2-components/ng2-alfresco-webscript/package.json index a64b4dacac..3ed4ee5a3b 100644 --- a/ng2-components/ng2-alfresco-webscript/package.json +++ b/ng2-components/ng2-alfresco-webscript/package.json @@ -5,14 +5,11 @@ "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf dist node_modules typings bundles coverage", - "build": "license-check && ../node_modules/webpack/bin/webpack.js --config webpack.build.js --progress --profile --bail", - "license-check": "license-check", - "tslint": "../node_modules/tslint/bin/tslint -c ../config/assets/tslint.json 'src/{,**/}**.ts' 'index.ts' -e '{,**/}**.d.ts'", - "tsc": "../node_modules/typescript/bin/tsc", - "test": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-webscript", - "test-browser": "../node_modules/karma/bin/karma start ../config/karma.conf.js --reporters kjhtml --component ng2-alfresco-webscript", - "coverage": "npm run test && ../node_modules/wsrv/bin/wsrv -o -p 9875 ./coverage/report", - "publish:prod": "npm run test && npm publish" + "build": "webpack --config webpack.build.js --progress --profile --bail", + "test": "karma start karma.conf.js --reporters mocha,coverage --single-run --component", + "test-browser": "karma start karma.conf.js --reporters kjhtml --component", + "coverage": "npm run test && wsrv -o -p 9875 ./coverage/report", + "prepublish" : "npm run test" }, "main": "bundles/ng2-alfresco-webscript.js", "repository": { @@ -48,19 +45,53 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "^1.0.4", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", + "cssnano": "^3.8.1", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", + "jasmine-ajax": "^3.2.0", + "jasmine-core": "2.4.1", + "karma": "^0.13.22", + "karma-chrome-launcher": "~1.0.1", + "karma-coverage": "^1.1.1", + "karma-jasmine": "~1.0.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-jasmine-html-reporter": "0.2.0", + "karma-mocha-reporter": "^2.2.2", + "karma-remap-istanbul": "^0.6.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-systemjs": "^0.16.0", + "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", "merge-stream": "^1.0.1", - "remap-istanbul": "0.6.3", - "rimraf": "2.5.2", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", "run-sequence": "^1.2.2", + "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", "systemjs-builder": "^0.15.34", - "traceur": "0.0.91", + "to-string-loader": "^1.1.4", + "traceur": "^0.0.91", + "ts-loader": "^2.0.0", "ts-node": "^1.7.0", - "tslint": "3.15.1", - "typescript": "^2.0.3", - "wsrv": "^0.1.5" + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", + "webpack": "^2.2.1", + "webpack-dev-server": "^2.3.0", + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7" }, "keywords": [ "webscript", diff --git a/ng2-components/ng2-alfresco-webscript/webpack.test.js b/ng2-components/ng2-alfresco-webscript/webpack.test.js new file mode 100644 index 0000000000..4a61a62939 --- /dev/null +++ b/ng2-components/ng2-alfresco-webscript/webpack.test.js @@ -0,0 +1,8 @@ +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const testConfig = require('../config/webpack.test.js'); + +module.exports = webpackMerge(testConfig, { + + +}); diff --git a/ng2-components/package-base.json b/ng2-components/package-base.json index 2a9beece54..50bb86ead2 100644 --- a/ng2-components/package-base.json +++ b/ng2-components/package-base.json @@ -1,17 +1,18 @@ { "name": "ng2-alfresco-components", "description": "Alfresco ng2 components", - "version": "1.3.0", + "version": "1.4.0", "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf node_modules", "build": "webpack --config config/webpack.build.js --progress --profile --bail", "pkg-build": "package-json-merge ng2-alfresco-core/package.json ng2-alfresco-datatable/package.json ng2-activiti-diagrams/package.json ng2-activiti-analytics/package.json ng2-activiti-form/package.json ng2-activiti-tasklist/package.json ng2-activiti-processlist/package.json ng2-alfresco-documentlist/package.json ng2-alfresco-login/package.json ng2-alfresco-search/package.json ng2-alfresco-tag/package.json ng2-alfresco-upload/package.json ng2-alfresco-viewer/package.json ng2-alfresco-webscript/package.json ng2-alfresco-webscript/package.json ng2-alfresco-userinfo/package.json ng2-alfresco-social/package.json package-base.json > package.json", - "test": "karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-webscript", + "test": "karma start --reporters mocha,coverage --single-run", + "test-browser": "karma start karma.conf.js --reporters kjhtml", "tslint": "", + "prepublish": "", "tsc": "", "pretest": "", - "test-browser": "", "posttest": "", "coverage": "", "publish:prod": "" diff --git a/ng2-components/package.json b/ng2-components/package.json index 45359eaf9c..27dd7a69a3 100644 --- a/ng2-components/package.json +++ b/ng2-components/package.json @@ -1,21 +1,21 @@ { "name": "ng2-alfresco-components", "description": "Alfresco ng2 components", - "version": "1.3.0", + "version": "1.4.0", "author": "Alfresco Software, Ltd.", "scripts": { "clean": "rimraf node_modules", "build": "webpack --config config/webpack.build.js --progress --profile --bail", - "license-check": "license-check", + "test": "karma start --reporters mocha,coverage --single-run", + "test-browser": "karma start karma.conf.js --reporters kjhtml", + "coverage": "", + "prepublish": "", + "pkg-build": "package-json-merge ng2-alfresco-core/package.json ng2-alfresco-datatable/package.json ng2-activiti-diagrams/package.json ng2-activiti-analytics/package.json ng2-activiti-form/package.json ng2-activiti-tasklist/package.json ng2-activiti-processlist/package.json ng2-alfresco-documentlist/package.json ng2-alfresco-login/package.json ng2-alfresco-search/package.json ng2-alfresco-tag/package.json ng2-alfresco-upload/package.json ng2-alfresco-viewer/package.json ng2-alfresco-webscript/package.json ng2-alfresco-webscript/package.json ng2-alfresco-userinfo/package.json ng2-alfresco-social/package.json package-base.json > package.json", "tslint": "", "tsc": "", - "test": "karma start ../config/karma.conf.js --reporters mocha,coverage --single-run --component ng2-alfresco-webscript", - "test-browser": "", - "coverage": "", - "publish:prod": "", - "pkg-build": "package-json-merge ng2-alfresco-core/package.json ng2-alfresco-datatable/package.json ng2-activiti-diagrams/package.json ng2-activiti-analytics/package.json ng2-activiti-form/package.json ng2-activiti-tasklist/package.json ng2-activiti-processlist/package.json ng2-alfresco-documentlist/package.json ng2-alfresco-login/package.json ng2-alfresco-search/package.json ng2-alfresco-tag/package.json ng2-alfresco-upload/package.json ng2-alfresco-viewer/package.json ng2-alfresco-webscript/package.json ng2-alfresco-webscript/package.json ng2-alfresco-userinfo/package.json ng2-alfresco-social/package.json package-base.json > package.json", "pretest": "", - "posttest": "" + "posttest": "", + "publish:prod": "" }, "main": "./index.js", "repository": { @@ -95,37 +95,17 @@ "@types/hammerjs": "^2.0.34", "@types/jasmine": "2.5.35", "@types/node": "6.0.45", + "angular2-template-loader": "^0.6.2", "autoprefixer": "^6.5.4", - "cpx": "^1.3.1", - "license-check": "1.1.5", - "merge-stream": "^1.0.1", - "rimraf": "^2.5.4", - "run-sequence": "^1.2.2", - "systemjs-builder": "^0.15.34", - "traceur": "^0.0.91", - "ts-node": "^1.7.0", - "tslint": "^4.4.2", - "typescript": "^2.1.6", - "wsrv": "^0.1.5", - "concurrently": "^2.2.0", - "remap-istanbul": "^0.6.3", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.23.1", + "css-to-string-loader": "^0.1.2", "cssnano": "^3.8.1", - "gulp": "^3.9.1", - "gulp-autoprefixer": "^3.1.1", - "gulp-cached": "^1.1.1", - "gulp-concat": "^2.6.1", - "gulp-concat-css": "^2.3.0", - "gulp-filter": "^4.0.0", - "gulp-inline-ng2-template": "^4.0.0", - "gulp-load-plugins": "^1.4.0", - "gulp-plumber": "^1.1.0", - "gulp-postcss": "^6.2.0", - "gulp-replace": "^0.5.4", - "gulp-sourcemaps": "^1.9.1", - "gulp-template": "^4.0.0", - "gulp-typescript": "^3.1.3", - "gulp-uglify": "^2.0.0", - "gulp-util": "^3.0.7", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "file-loader": "0.11.1", + "html-loader": "^0.4.4", + "html-webpack-plugin": "^2.28.0", + "istanbul-instrumenter-loader": "0.2.0", "jasmine-ajax": "^3.2.0", "jasmine-core": "2.4.1", "karma": "^0.13.22", @@ -135,38 +115,38 @@ "karma-jasmine-ajax": "^0.1.13", "karma-jasmine-html-reporter": "0.2.0", "karma-mocha-reporter": "^2.2.2", - "angular2-template-loader": "^0.6.2", - "css-loader": "^0.23.1", - "css-to-string-loader": "^0.1.2", - "html-loader": "^0.4.4", - "file-loader": "0.11.1", - "null-loader": "^0.1.1", - "package-json-merge": "0.0.1", - "raw-loader": "^0.5.1", - "source-map-loader": "^0.1.6", - "style-loader": "^0.13.1", - "istanbul-instrumenter-loader": "0.2.0", - "loader-utils": "^1.1.0", - "ts-loader": "^2.0.0", - "to-string-loader": "^1.1.4", - "tslint-loader": "^3.3.0", - "copy-webpack-plugin": "^4.0.1", - "extract-text-webpack-plugin": "^2.0.0-rc.3", - "html-webpack-plugin": "^2.28.0", "karma-remap-istanbul": "^0.6.0", "karma-sourcemap-loader": "^0.3.7", "karma-systemjs": "^0.16.0", "karma-webpack": "^2.0.2", + "loader-utils": "^1.1.0", + "merge-stream": "^1.0.1", + "null-loader": "^0.1.1", + "package-json-merge": "0.0.1", + "raw-loader": "^0.5.1", + "remap-istanbul": "^0.6.3", + "rimraf": "^2.5.4", + "run-sequence": "^1.2.2", "script-loader": "0.7.0", + "source-map-loader": "^0.1.6", + "style-loader": "^0.13.1", + "systemjs-builder": "^0.15.34", + "to-string-loader": "^1.1.4", + "traceur": "^0.0.91", + "ts-loader": "^2.0.0", + "ts-node": "^1.7.0", + "tslint": "^4.4.2", + "tslint-loader": "^3.3.0", + "typescript": "^2.1.6", "webpack": "^2.2.1", "webpack-dev-server": "^2.3.0", - "webpack-merge": "2.6.1" + "webpack-merge": "2.6.1", + "wsrv": "^0.1.7", + "license-check": "1.1.5" }, "license-check-config": { "src": { - "0": "./src/**/*.ts", - "1": "!./src/services/rendering-queue.services.ts", - "2": "!./src/services/rendering-queue.services.d.ts" + "0": "./src/**/*.ts" }, "path": "assets/license_header.txt", "blocking": true, diff --git a/scripts/README.md b/scripts/README.md index a0ea1a315b..ef45012557 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -25,7 +25,13 @@ feel for what's available. * Start the demo, install all the dependencies, and remove the previous version of the npm packages (*Note. do this only after big changes*): ```sh -./start.sh -cleanInstall or -c +./start.sh -c -i +``` + +* Start the demo using an alternative npm registry + +```sh +./start.sh -registry 'http://npm.local.me:8080/' ``` * Start the demo and update the dependencies: @@ -34,6 +40,12 @@ feel for what's available. ./start.sh -update or -u ``` +* Start the demo in development mode building the relative folder ng2-components with all the components and pointing to this component instead to the node_modules one + +```sh +./start.sh -develop -d +``` + * If you want to build all your local component: ```sh @@ -46,6 +58,12 @@ feel for what's available. ./npm-buid-alll.sh -t or -test ``` +* If you want clean the ng2-components folder node_modules before to build + +```sh +./npm-buid-alll.sh -c +``` + * If you want clean all your local component and the demo shell: ```sh diff --git a/scripts/npm-build-all.sh b/scripts/npm-build-all.sh index fa837b6c87..396202dfed 100755 --- a/scripts/npm-build-all.sh +++ b/scripts/npm-build-all.sh @@ -2,6 +2,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" eval RUN_TEST=false +eval EXEC_CLEAN=false eval projects=( "ng2-alfresco-core" "ng2-alfresco-datatable" @@ -20,11 +21,11 @@ eval projects=( "ng2-alfresco-core" "ng2-alfresco-viewer" "ng2-alfresco-webscript" "ng2-alfresco-userinfo" ) - show_help() { echo "Usage: npm-build-all.sh" echo "" echo "-t or -test build all your local component and run also the test on them" + echo "-c or -clean the ndode_moduels folder before to start the build" } enable_test(){ @@ -33,30 +34,45 @@ enable_test(){ test_project() { echo "====== test project: $1 =====" - npm run test || exit 1 + npm run test -- --component $1 || exit 1 +} + +clean() { + EXEC_CLEAN=true } while [[ $1 == -* ]]; do case "$1" in -h|--help|-\?) show_help; exit 0;; -t|--test) enable_test; shift;; + -c|--clean) clean; shift;; -*) echo "invalid option: $1" 1>&2; show_help; exit 1;; esac done cd "$DIR/../ng2-components/" -npm install package-json-merge -g -npm install rimraf -g + +if $EXEC_CLEAN == true; then + echo "====== Clean ng2-components =====" + npm install rimraf + npm run clean +fi + +echo "====== Regenerate global ng2-components package.json =====" +npm install package-json-merge npm run pkg-build -npm install && npm run build || exit 1 + +echo "====== Install ng2-components dependencies =====" +npm install + +echo "====== Build ng2-components =====" +npm run build || exit 1 for PACKAGE in ${projects[@]} do - DESTDIR="$DIR/../ng2-components/${PACKAGE}" + DESTDIR="$DIR/../ng2-components/" cd $DESTDIR if $RUN_TEST == true; then test_project $PACKAGE fi done - - diff --git a/scripts/npm-clean.sh b/scripts/npm-clean.sh index 540ab9e51c..9293465cda 100755 --- a/scripts/npm-clean.sh +++ b/scripts/npm-clean.sh @@ -20,7 +20,7 @@ eval projects=( "ng2-activiti-diagrams" "ng2-alfresco-webscript" "ng2-alfresco-userinfo" ) -npm install rimraf -g +npm install rimraf for PACKAGE in ${projects[@]} do diff --git a/scripts/npm-publish.sh b/scripts/npm-publish.sh index 945e2f097a..5a9f523a2f 100755 --- a/scripts/npm-publish.sh +++ b/scripts/npm-publish.sh @@ -2,24 +2,57 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -"$DIR/npm-clean.sh" eval FORCE_PUBLISH=false +eval NPM_REGISTRY="" +eval OPTIONS="" + +cd "$DIR/../demo-shell-ng2" show_help() { echo "Usage: npm-publish.sh" echo "" echo "-f or -force publish the package with force" + echo "-r or -registry to publish in an alternative npm registry -registry 'http://npm.local.me:8080/' " + echo "-t or -tag to add a tag when publish a package" } enable_force(){ - FORCE_PUBLISH=true + OPTIONS="$OPTIONS -force" +} + +add_tag(){ + eval TAG=$1 + + if [[ "${TAG}" == "" ]] + then + echo "tag missing -t | -tag" + exit 0 + fi + + echo "====== TAG WILL BE ADDED DURING THE PUBLISH: ${TAG} =====" + OPTIONS="$OPTIONS -tag $1" +} + +change_registry(){ + NPM_REGISTRY=$1 + + if [[ "${NPM_REGISTRY}" == "" ]] + then + echo "NPM registry required WITH OPTION -r | -registry" + exit 0 + fi + + echo "====== CHANGE REGISTRY: ${NPM_REGISTRY} =====" + npm config set registry ${NPM_REGISTRY} } while [[ $1 == -* ]]; do case "$1" in -h|--help|-\?) show_help; exit 0;; + -t|--tag) add_tag $2; shift 2;; -f|--force) enable_force; shift;; - -*) echo "invalid option: $1" 1>&2; show_help; exit 1;; + -r|--registry) change_registry $2; shift 2;; + -*) echo "invalid option: $1" 1>&2; show_help; exit 0;; esac done @@ -42,15 +75,10 @@ for PACKAGE in \ ng2-alfresco-userinfo do DESTDIR="$DIR/../ng2-components/${PACKAGE}" - echo "====== PUBLISHING: ${DESTDIR} =====" + echo "====== PUBLISHING: ${DESTDIR} ===== npm publish ${OPTIONS}" cd ${DESTDIR} npm run clean npm install - if FORCE_PUBLISH == false; then - npm run publish:prod - fi - if FORCE_PUBLISH == true; then - npm run test && npm run publish --force || exit 1 - fi + npm publish ${OPTIONS} cd ${DIR} done diff --git a/scripts/start.sh b/scripts/start.sh index eb118f5dcc..9b8625f256 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -2,28 +2,49 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cd "$DIR/../demo-shell-ng2" +eval EXEC_INSTALL=false +eval EXEC_UPDATE=false +eval EXEC_CLEAN=false +eval EXEC_DEVELOP=false show_help() { echo "Usage: start.sh" echo "" + echo "-d or -develop start the demo shell using the relative ng2-components folder to link the components" echo "-i or -install start the demo shell and install the dependencies" echo "-u or -update start the demo shell and update the dependencies" - echo "-c or -cleanInstall clean the demo shell install the dependencies and start the the demo shell" + echo "-c or -clean clean the demo shell and reinstall the dependencies" + echo "-r or -registry to download the packages from an alternative npm registry example -registry 'http://npm.local.me:8080/' " } install() { - npm install + EXEC_INSTALL=true } update() { - echo "update" - npm run update + EXEC_UPDATE=true } -cleanInstall() { - npm run clean - npm install +develop() { + EXEC_DEVELOP=true +} + +change_registry(){ + NPM_REGISTRY=$1 + + if [[ "${NPM_REGISTRY}" == "" ]] + then + echo "NPM registry required WITH OPTION -r | -registry" + exit 0 + fi + + echo "====== CHANGE REGISTRY: ${NPM_REGISTRY} =====" + npm config set registry ${NPM_REGISTRY} +} + +clean() { + EXEC_CLEAN=true + EXEC_INSTALL=true } while [[ $1 == -* ]]; do @@ -31,9 +52,47 @@ while [[ $1 == -* ]]; do -h|--help|-\?) show_help; exit 0;; -i|--install) install; shift;; -u|--update) update; shift;; - -c|--cleanInstall) cleanInstall; shift;; + -c|--clean) clean; shift;; + -d|--develop) develop; shift;; + -r|--registry) change_registry $2; shift 2;; -*) shift;; esac done -npm run start +if $EXEC_CLEAN == true; then + echo "====== Clean Demo shell =====" + cd "$DIR/../demo-shell-ng2" + npm install rimraf + npm run clean +fi + +if $EXEC_DEVELOP == true; then + echo "====== Build ng2-components folder=====" + cd "$DIR/../scripts" + sh npm-build-all.sh +fi + +if $EXEC_INSTALL == true; then + echo "====== Install Demo shell =====" + cd "$DIR/../demo-shell-ng2" + npm install +fi + +if $EXEC_UPDATE == true; then + echo "====== Update Demo shell =====" + cd "$DIR/../demo-shell-ng2" + npm update +fi + +if $EXEC_DEVELOP == true; then + echo "====== Start Demo shell development mode=====" + cd "$DIR/../demo-shell-ng2" + npm run start:dev +fi + +if $EXEC_DEVELOP == false; then + echo "====== Start Demo shell =====" + cd "$DIR/../demo-shell-ng2" + npm run start +fi +