Files
dc/client/karma.conf.js
dc 608482d421 test(client): switch the code coverage reporter on
karma-coverage was loaded and configured but never in the reporters list, so
the client has had no coverage output at all.

Adding it to the reporters changes nothing for the default run (istanbul only
instruments when --code-coverage is passed, so the reporter has nothing to say
otherwise), and `npm run coverage` turns it on and writes the html report plus
a json-summary under coverage/datacontroller.

Measured on this branch: 906 tests, statements 50.21%, branches 46.78%,
functions 45.12%, lines 49.87%.
2026-11-08 23:01:34 +00:00

48 lines
1.6 KiB
JavaScript

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
jasmine: {
// you can add configuration options for Jasmine here
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
// for example, you can disable the random execution with `random: false`
// or set a specific seed with `seed: 4321`
},
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
jasmineHtmlReporter: {
suppressAll: true // removes the duplicated traces
},
coverageReporter: {
dir: require('path').join(__dirname, './coverage/datacontroller'),
subdir: '.',
reporters: [
{ type: 'html' },
{ type: 'text-summary' },
// json-summary is what lets a script answer "which source files have no
// spec at all" without scraping the HTML report.
{ type: 'json-summary' }
]
},
reporters: ['progress', 'kjhtml', 'coverage'],
browsers: ['Chrome', 'ChromeHeadless', 'ChromeHeadlessCI'],
restartOnFileChange: true,
customLaunchers: {
ChromeHeadlessCI: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
});
};