diff options
| author | Nick Merwin <[email protected]> | 2017-03-05 11:12:45 -0800 |
|---|---|---|
| committer | Nick Merwin <[email protected]> | 2017-03-05 11:12:45 -0800 |
| commit | d571dac62547f487b3862aca8bf367e95957d904 (patch) | |
| tree | 9b3a600ce69411934329dfb757dc05a56c30b9a1 | |
| parent | 8dfcfd6d8809e0678958a81f29474ee084d529fe (diff) | |
| parent | 15750503b69c3143b3020fa5d4fe4fc1d455356e (diff) | |
| download | node-coveralls-2.12.0.tar.xz node-coveralls-2.12.0.zip | |
merge, version bump2.12.0
| -rw-r--r-- | lib/convertLcovToCoveralls.js | 16 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | test/convertLcovToCoveralls.js | 29 |
3 files changed, 44 insertions, 3 deletions
diff --git a/lib/convertLcovToCoveralls.js b/lib/convertLcovToCoveralls.js index 68687bd..521e749 100644 --- a/lib/convertLcovToCoveralls.js +++ b/lib/convertLcovToCoveralls.js @@ -12,22 +12,34 @@ var detailsToCoverage = function(length, details){ return coverage; }; +var detailsToBranches = function(details){ + var branches = []; + details.forEach(function(obj){ + ['line','block','branch','taken'].forEach(function(key){ + branches.push(obj[key] || 0); + }); + }); + return branches; +}; + var convertLcovFileObject = function(file, filepath){ var rootpath = filepath; filepath = path.resolve(rootpath, file.file); var source = fs.readFileSync(filepath, 'utf8'); var lines = source.split("\n"); var coverage = detailsToCoverage(lines.length, file.lines.details); + var branches = detailsToBranches(file.branches.details); return { name : path.relative(rootpath, path.resolve(rootpath, file.file)).split( path.sep ).join( "/" ), source : source, - coverage : coverage }; + coverage : coverage, + branches : branches }; }; var cleanFilePath = function(file) { if (file.indexOf('!') > -1) { var regex = /^(.*!)(.*)$/g; var matches = regex.exec(file); - return matches[matches.length-1]; + return matches[matches.length-1]; } return file; diff --git a/package.json b/package.json index 07c9dd0..779feb4 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "coverage", "coveralls" ], - "version": "2.11.16", + "version": "2.12.0", "bugs": { "url": "https://github.com/nickmerwin/node-coveralls/issues" }, diff --git a/test/convertLcovToCoveralls.js b/test/convertLcovToCoveralls.js index 31f40d9..eb67305 100644 --- a/test/convertLcovToCoveralls.js +++ b/test/convertLcovToCoveralls.js @@ -88,6 +88,35 @@ describe("convertLcovToCoveralls", function(){ }); }); + it ("should handle branch coverage data", function(done){ + process.env.TRAVIS_JOB_ID = -1; + var lcovpath = __dirname + "/../fixtures/istanbul.lcov"; + var input = fs.readFileSync(lcovpath, "utf8"); + var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; + var sourcepath = path.resolve(libpath, "svgo/config.js"); + + var originalReadFileSync = fs.readFileSync; + fs.readFileSync = function(filepath) { + if (filepath === sourcepath) { + return ''; + } + + return originalReadFileSync.apply(fs, arguments); + }; + + var originalExistsSync = fs.existsSync; + fs.existsSync = function () { return true; }; + + convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + fs.readFileSync = originalReadFileSync; + fs.existsSync = originalExistsSync; + + should.not.exist(err); + output.source_files[0].branches.slice(0,8).should.eql([18,1,0,85,18,1,1,2]); + done(); + }); + }); + it ("should ignore files that do not exists", function(done){ delete process.env.TRAVIS; var lcovpath = __dirname + "/../fixtures/istanbul.lcov"; |
