aboutsummaryrefslogtreecommitdiff
path: root/test/unit/karma.conf.js
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2016-10-26 16:46:32 +0200
committerRoger Braun <roger@rogerbraun.net>2016-10-26 16:46:32 +0200
commit191c02af1ebfc7e6c53dc88d97c4e3ca23fbea8b (patch)
treeb3a132f8eba6ee92d6ec2a581f0bf33e1852010b /test/unit/karma.conf.js
Basic skeleton
Diffstat (limited to 'test/unit/karma.conf.js')
-rw-r--r--test/unit/karma.conf.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js
new file mode 100644
index 00000000..048b7290
--- /dev/null
+++ b/test/unit/karma.conf.js
@@ -0,0 +1,75 @@
+// This is a karma config file. For more details see
+// http://karma-runner.github.io/0.13/config/configuration-file.html
+// we are also using it with karma-webpack
+// https://github.com/webpack/karma-webpack
+
+var path = require('path')
+var merge = require('webpack-merge')
+var baseConfig = require('../../build/webpack.base.conf')
+var utils = require('../../build/utils')
+var webpack = require('webpack')
+var projectRoot = path.resolve(__dirname, '../../')
+
+var webpackConfig = merge(baseConfig, {
+ // use inline sourcemap for karma-sourcemap-loader
+ module: {
+ loaders: utils.styleLoaders()
+ },
+ devtool: '#inline-source-map',
+ vue: {
+ loaders: {
+ js: 'isparta'
+ }
+ },
+ plugins: [
+ new webpack.DefinePlugin({
+ 'process.env': require('../../config/test.env')
+ })
+ ]
+})
+
+// no need for app entry during tests
+delete webpackConfig.entry
+
+// make sure isparta loader is applied before eslint
+webpackConfig.module.preLoaders = webpackConfig.module.preLoaders || []
+webpackConfig.module.preLoaders.unshift({
+ test: /\.js$/,
+ loader: 'isparta',
+ include: path.resolve(projectRoot, 'src')
+})
+
+// only apply babel for test files when using isparta
+webpackConfig.module.loaders.some(function (loader, i) {
+ if (loader.loader === 'babel') {
+ loader.include = path.resolve(projectRoot, 'test/unit')
+ return true
+ }
+})
+
+module.exports = function (config) {
+ config.set({
+ // to run in additional browsers:
+ // 1. install corresponding karma launcher
+ // http://karma-runner.github.io/0.13/config/browsers.html
+ // 2. add it to the `browsers` array below.
+ browsers: ['PhantomJS'],
+ frameworks: ['mocha', 'sinon-chai'],
+ reporters: ['spec', 'coverage'],
+ files: ['./index.js'],
+ preprocessors: {
+ './index.js': ['webpack', 'sourcemap']
+ },
+ webpack: webpackConfig,
+ webpackMiddleware: {
+ noInfo: true
+ },
+ coverageReporter: {
+ dir: './coverage',
+ reporters: [
+ { type: 'lcov', subdir: '.' },
+ { type: 'text-summary' }
+ ]
+ }
+ })
+}