improve code

This commit is contained in:
Rene Haas
2022-07-31 13:45:14 +02:00
parent 64ea796f79
commit e347e7d236
5 changed files with 1278 additions and 4796 deletions
+2 -1
View File
@@ -12,7 +12,8 @@
"test:jsdom": "jest --coverage --runInBand --detectOpenHandles --testPathPattern",
"posttest:jsdom": "full-coverage",
"build": "rollup -c",
"test:playwright": "playwright test",
"test:playwright": "playwright test --quiet",
"test:playwright:dev": "playwright test",
"posttest:playwright": "playwright-merge-coverage && full-coverage"
}
}
+63
View File
@@ -0,0 +1,63 @@
const fs = require('fs-extra');
const glob = require('glob');
const { createContext } = require('istanbul-lib-report');
const istanbulCoverage = require('istanbul-lib-coverage');
const reports = require('istanbul-reports');
/* [ Configuration ] */
const rootDir = './.coverage/';
const reportOut = './.coverage/report';
const normalizeJestCoverage = (obj) => {
const result = { ...obj };
Object.entries(result)
.filter(([k, v]) => v.data)
.forEach(([k, v]) => {
result[k] = v.data;
});
return result;
};
const mergeAllReports = (coverageMap, reports) => {
if (Array.isArray(reports) === false) {
return;
}
reports.forEach((reportFile) => {
const coverageReport = fs.readJSONSync(reportFile);
coverageMap.merge(coverageReport);
});
};
const findAllCoverageReports = (path, callback) => {
glob(path, {}, (err, reports) => {
callback(reports, err);
});
};
const generateReport = (coverageMap, types) => {
const reporter = createContext({
dir: reportOut,
coverageMap,
});
const report = reports.create('text');
report.execute(reporter);
};
async function main() {
const coverageMap = istanbulCoverage.createCoverageMap({});
findAllCoverageReports(`${rootDir}/**/coverage-final.json`, (reports, err) => {
if (Array.isArray(reports)) {
mergeAllReports(coverageMap, reports);
generateReport(coverageMap, ['text']);
}
});
}
main().catch((err) => {
console.error(err);
process.exit(1);
});