From 94b2862fbaf3f7e6f2d5dd064aafd87037eaec6d Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sun, 23 Sep 2018 02:09:04 -0400 Subject: [PATCH] add tests dependencies and configuration --- karma.conf.js | 43 +++++++++++++++++++++++++++++++++++++++++++ package.json | 24 ++++++++++++++++++++---- webpack.config.js | 10 ++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 karma.conf.js diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..3ff26d5 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,43 @@ +// const path = require('path') + +module.exports = function (config) { + config.set({ + frameworks: ['jasmine'], + files: [ + 'test/**/*.spec.js' + ], + exclude: [], + preprocessors: { + 'test/**/*.js': ['webpack', 'sourcemap', 'coverage'] + }, + reporters: ['progress', 'coverage'], + coverageReporter: { + dir: 'coverage/', + type: 'lcov', + subdir: '.', + includeAllSources: true, + fixWebpackSourcePaths: true, + combineBrowserReports: true + }, + port: 9876, + colors: true, + logLevel: config.LOG_ERROR, + autoWatch: false, + browsers: ['ChromeHeadless'], + singleRun: true, + concurrency: 1, + webpack: { + mode: 'development' + // TODO: Configure istanbul to interpret how webpack bundles files + // module: { + // rules: [ + // { + // test: /\.js$/, + // use: { loader: 'istanbul-instrumenter-loader' }, + // include: path.resolve('src/js/index.js') + // } + // ] + // } + } + }) +} diff --git a/package.json b/package.json index a87cb08..213e5d8 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,22 @@ "types": "./index.d.ts", "repository": "https://github.com/crabbly/Print.js", "license": "MIT", - "dependences": {}, + "dependencies": {}, "devDependencies": { "babel-core": "^6.26.3", "babel-loader": "^7.1.5", "babel-preset-env": "^1.7.0", + "coveralls": "^3.0.2", "css-loader": "^1.0.0", + "istanbul-instrumenter-loader": "^3.0.1", + "jasmine-core": "^3.2.1", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.2", + "karma-jasmine": "^1.1.2", + "karma-phantomjs-launcher": "^1.0.4", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^3.0.5", "mini-css-extract-plugin": "^0.4.1", "node-sass": "^4.9.3", "optimize-css-assets-webpack-plugin": "^5.0.0", @@ -23,16 +33,22 @@ "webpack-cli": "^3.1.0" }, "scripts": { - "test": "standard", + "test": "standard && karma start", "dev": "webpack --mode development --progress --hide-modules --devtool source-map", "watch": "webpack --mode development --watch --progress --hide-modules", - "production": "webpack --mode production --progress --hide-modules" + "production": "webpack --mode production --progress --hide-modules", + "coverage": "open coverage/lcov-report/index.html", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" }, "author": "Rodrigo Vieira ", "standard": { "ignore": [ "/dist/print.js" - ] + ], + "env": { + "browser": true, + "jasmine": true + } }, "keywords": [ "printjs", diff --git a/webpack.config.js b/webpack.config.js index ff8be42..b9258d6 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -27,6 +27,16 @@ module.exports = { } } }, + // TODO: Configure istanbul to interpret how webpack bundles files + // { + // test: /\.js$/, + // use: { + // loader: 'istanbul-instrumenter-loader', + // options: { esModules: true } + // }, + // enforce: 'post', + // exclude: /node_modules|\.spec\.js$/ + // }, { test: /\.scss$/, use: [