The problem
You're using POI 10 with @poi/plugin-karma
and want to get coverage of your unit tests. The way to do it is to specify:
plugins: [
require('@poi/plugin-karma')({
coverage: true,
})
]
and theoretically you should be all set. Only that it won't work:
TypeError: Cannot read property 'preLoaders' of undefined
I've looked everywhere and it seems that it is, unfortunately, not a known problem. What is even worse the GitHub repo with POI sources, version 10, is GONE! I mean I understand everything but removing history of an opensource project - that is a bit too much for me. SHAME ON YOU, EGOIST!
The solution
The problem is that @poi/plugin-karma
taps directly to options of the vue-loader
whist seems to be undefined at that point. The quick and dirty solution is to add those options:
plugins: [
require('@poi/plugin-karma')({
coverage: true,
chainWebpack (config) {
config.module.rule('vue').use('vue-loader').options({})
}
})
]
I need to dig more into the matter why vue-loader
isn't configured there and why the hell when testing a Vue.js SFC still causes errors but for now for testing just javascript code the above solution works
Happy coding
No comments:
Post a Comment