-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathcore.js
63 lines (57 loc) · 1.93 KB
/
core.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import Conf from './../context/conf';
import path from 'path';
import fs from 'fs';
const Coverage = Npm.require('istanbul-lib-coverage');
let mergeCoverageWith, importCoverage, getCoverageObject;
getCoverageObject = function () {
/* istanbul ignore next: default assignment */
global.__coverage__ = global.__coverage__ || {};
return global.__coverage__;
};
setCoverageObject = function (obj) {
global.__coverage__ = obj;
};
mergeCoverageWith = function (obj) {
/* istanbul ignore else */
if (!obj) {
return;
}
var coverage = getCoverageObject();
var coverageMap = Coverage.createCoverageMap(coverage);
coverageMap.addFileCoverage(obj);
setCoverageObject(coverageMap.toJSON());
};
/* istanbul ignore next: default assignment */
importCoverage = function (res, options = {}) {
Log.info('import coverage');
/* istanbul ignore next: ternary operator */
const filename = options.filename ? options.filename : 'report.json';
const reportPath = path.join(Conf.COVERAGE_APP_FOLDER, Conf.COVERAGE_EXPORT_FOLDER, filename);
fs.exists(reportPath, function (exists) {
/* istanbul ignore else */
if (!exists) {
res.end(JSON.stringify({ type: 'failed', message: 'report file not found: reportPath=' + reportPath + ' COVERAGE_APP_FOLDER=' + Conf.COVERAGE_APP_FOLDER }));
return;
}
fs.readFile(reportPath, 'utf8', function (err, fileContent) {
/* istanbul ignore else */
if (err) {
res.end(JSON.stringify({ type: 'failed', message: 'failed to read report file: ' + reportPath }));
return;
}
let coverageObj = JSON.parse(fileContent);
for (let property in coverageObj) {
/* istanbul ignore else */
if (Object.hasOwn(coverageObj, property)) {
Core.mergeCoverageWith(coverageObj[property]);
}
}
res.end('{"type":"success"}');
});
});
};
export default Core = {
mergeCoverageWith,
importCoverage,
getCoverageObject
};