diff --git a/karma.conf.js b/karma.conf.js index dd9ef4f..054c371 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -18,7 +18,7 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ - "tests/unit/*.spec.js", + "./karma.files.js", { pattern: 'node_modules/sql.js/dist/sql-wasm.wasm', watched: false, included: false, @@ -39,7 +39,7 @@ module.exports = function(config) { // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { - "tests/unit/*.spec.js": ["webpack"] + "./karma.files.js": ["webpack"] }, // test results reporter to use @@ -118,7 +118,14 @@ module.exports = function(config) { use: [ { loader: "babel-loader" - }, + } + ] + }, + { + test: /\.js$/, + include: /src/, + exclude: /(node_modules|bower_components|\.spec\.js$|\/file)/, + use: [ { loader: "istanbul-instrumenter-loader", options: { diff --git a/karma.files.js b/karma.files.js new file mode 100644 index 0000000..7115137 --- /dev/null +++ b/karma.files.js @@ -0,0 +1,16 @@ +import Vue from "vue"; + +Vue.config.productionTip = false; + +// require all test files (files that ends with .spec.js) +const testsContext = require.context("./tests/unit", true, /\.spec.js$/); + +// Read more about why we need to call testContext: +// https://www.npmjs.com/package/require-context#context-api +testsContext.keys().forEach(testsContext); + +// require all src files except main.js for coverage. +// you can also change this to match only the subset of files that +// you want coverage for. +const srcContext = require.context("./src", true, /^\.\/(?!main(\.js)?$)/); +srcContext.keys().forEach(srcContext); \ No newline at end of file