UNPKG

1.6 kBJavaScriptView Raw
1var jasmineCore = require('jasmine-core');
2
3var JASMINE_CORE_PATTERN = /([\\/]karma-jasmine[\\/])/i;
4var createPattern = function (path) {
5 return { pattern: path, included: true, served: true, watched: false };
6};
7
8var initReporter = function (karmaConfig, baseReporterDecorator) {
9 var jasmineCoreIndex = 0;
10
11 const files = karmaConfig.files;
12
13 baseReporterDecorator(this);
14
15 if (karmaConfig.jasmineHtmlReporter) {
16 const config = karmaConfig.jasmineHtmlReporter;
17 if (config.suppressAll) {
18 this.onSpecComplete = () => void 0;
19 this.onRunComplete = () => void 0;
20 }
21 if (config.suppressFailed) {
22 this.specFailure = () => void 0;
23 }
24 }
25
26 files.forEach(function (file, index) {
27 if (JASMINE_CORE_PATTERN.test(file.pattern)) {
28 jasmineCoreIndex = index;
29 }
30 });
31
32 jasmineCore.files.cssFiles.forEach(function (file) {
33 files.splice(++jasmineCoreIndex, 0, createPattern(jasmineCore.files.path + '/' + file));
34 });
35
36 jasmineCore.files.jsFiles.forEach(function (file) {
37 // Avoid jasmine.js as it's already included by karma-jasmine
38 if (file == "jasmine.js") {
39 return;
40 }
41
42 files.splice(++jasmineCoreIndex, 0, createPattern(jasmineCore.files.path + '/' + file));
43 });
44
45 files.splice(++jasmineCoreIndex, 0, createPattern(jasmineCore.files.bootDir + '/boot0.js'));
46 files.splice(++jasmineCoreIndex, 0, createPattern(__dirname + '/boot.js'));
47};
48
49initReporter.$inject = ['config', 'baseReporterDecorator'];
50
51module.exports = {
52 'reporter:kjhtml': ['type', initReporter]
53};