Last active
May 11, 2017 20:24
-
-
Save dima117/f3922692463d1a363ca992e7183700dd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const walk = require('@bem/walk'); | |
const config = require('bem-config')(); | |
const istanbul = require('istanbul').utils; | |
const _ = require('lodash'); | |
function getCoverage(level) { | |
const files = {}; | |
return new Promise(function(resolve, reject) { | |
walk([level], { levels: config.levelMapSync() }) | |
.on('data', filterFiles) | |
.on('error', err => { reject(err); } ) | |
.on('end', () => { resolve(files); }); | |
function filterFiles(file) { | |
if (file.cell.tech != 'test-result.json') return; | |
let blockName = file.cell.entity.block; | |
let obj = require(file.path); | |
if (!obj.coverage) return; | |
let coverage = istanbul.summarizeCoverage(obj.coverage); | |
delete coverage.linesCovered; | |
files[blockName] = coverage; | |
} | |
}); | |
} | |
function getPct(coverage) { | |
if (!coverage || !coverage.statements) return 0; | |
return coverage.statements.pct || 0; | |
} | |
Promise.all([ | |
getCoverage('/Users/dima117a/projects/test.bundles'), | |
getCoverage('/Users/dima117a/projects/test.bundles2') | |
]).then(function([obj1, obj2]) { | |
var keys = _.uniq(Object.keys(obj1).concat(Object.keys(obj2))); | |
var diffs = keys | |
.map(function(blockName){ | |
let coverage1 = obj1[blockName]; | |
let coverage2 = obj2[blockName]; | |
let pct1 = getPct(coverage1); | |
let pct2 = getPct(coverage2); | |
let diff = Math.abs(pct2 - pct1); | |
return { | |
block: blockName, | |
diff: diff, | |
c1: coverage1, | |
c2: coverage2 | |
}; | |
}).sort(function(el1, el2) { return el2.diff - el1.diff }); | |
console.log(JSON.stringify(diffs, null, 4)); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "aa", | |
"version": "1.0.0", | |
"description": "", | |
"main": "index.js", | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1" | |
}, | |
"author": "", | |
"license": "ISC", | |
"dependencies": { | |
"@bem/walk": "^1.0.0-2", | |
"bem-config": "^3.2.3", | |
"bem-walk": "^1.0.0-1", | |
"istanbul": "^0.4.5", | |
"lodash": "^4.17.4" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment