mirror of
https://github.com/nasa/openmct.git
synced 2024-12-23 15:02:23 +00:00
ca7fbe58e3
* WIP add instanbul code coverage to vue files * move webpack coverage config to a separate file for test:coverage, pin dependencies, remove istanbul-instrumenter-loader * dont include node_modules in babel config, it breaks istanbul for some reason * ignore spec files from coverage * document coverage files, remove unused karma config * use test instead of test:coverage in config.yml, disable code and link to issue to enable coverage in Vue <template>s
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
// This file extends the webpack.dev.js config to add istanbul coverage
|
|
// instrumentation using babel-plugin-istanbul (see babel.coverage.js)
|
|
|
|
const config = require('./webpack.dev');
|
|
|
|
const path = require('path');
|
|
|
|
config.devtool = false;
|
|
|
|
const vueLoaderRule = config.module.rules.find(r => r.use === 'vue-loader');
|
|
|
|
vueLoaderRule.use = {
|
|
loader: 'vue-loader'
|
|
// Attempt to use Babel with babel-plugin-istanbul
|
|
|
|
// TODO The purpose of this was to try to add coverage to JS expressions
|
|
// inside `<template>` markup, but it seems to add only coverage inside
|
|
// `<script>` tags.
|
|
// Issue: https://github.com/nasa/openmct/issues/4973
|
|
//
|
|
// options: {
|
|
// compiler: require('vue-template-babel-compiler'),
|
|
// compilerOptions: {
|
|
// babelOptions: require('./babel.coverage')
|
|
// }
|
|
// }
|
|
};
|
|
|
|
config.module.rules.push({
|
|
test: /\.js$/,
|
|
// test: /(\.js$)|(\?vue&type=template)/,
|
|
// exclude: /node_modules(?!.*\.vue)/,
|
|
exclude: /(Spec\.js$)|(node_modules)/,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
configFile: path.resolve(process.cwd(), 'babel.coverage.js')
|
|
}
|
|
}
|
|
});
|
|
|
|
module.exports = config;
|