Skip to content

Commit

Permalink
Merge 0b20d25 into 5e95a8d
Browse files Browse the repository at this point in the history
  • Loading branch information
ngrieble committed Mar 1, 2015
2 parents 5e95a8d + 0b20d25 commit 81cf11d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
17 changes: 11 additions & 6 deletions lib/report/json-summary.js
Expand Up @@ -47,16 +47,21 @@ Report.mix(JsonSummaryReport, {
writer = this.opts.writer || new Writer(sync),
that = this;

var summaries = [],
finalSummary;
collector.files().forEach(function (file) {
summaries.push(objectUtils.summarizeFileCoverage(collector.fileCoverageFor(file)));
});
finalSummary = objectUtils.mergeSummaryObjects.apply(null, summaries);

writer.on('done', function () { that.emit('done'); });
writer.writeFile(outputFile, function (contentWriter) {
var first = true;
contentWriter.println("{");
contentWriter.write('"total":');
contentWriter.write(JSON.stringify(finalSummary));

collector.files().forEach(function (key) {
if (first) {
first = false;
} else {
contentWriter.println(",");
}
contentWriter.println(",");
contentWriter.write(JSON.stringify(key));
contentWriter.write(":");
contentWriter.write(JSON.stringify(objectUtils.summarizeFileCoverage(collector.fileCoverageFor(key))));
Expand Down
12 changes: 11 additions & 1 deletion test/cli/test-json-summary-report.js
Expand Up @@ -10,7 +10,8 @@ var path = require('path'),
runCover = helper.runCommand.bind(null, COVER_COMMAND),
Reporter = require('../../lib/report/json-summary'),
Collector = require('../../lib/collector'),
existsSync = fs.existsSync || path.existsSync;
existsSync = fs.existsSync || path.existsSync,
objectUtils = require('../../lib/object-utils');

module.exports = {
setUp: function (cb) {
Expand All @@ -36,6 +37,15 @@ module.exports = {
obj = JSON.parse(fs.readFileSync(file, 'utf8'));
collector.add(obj);
reporter.writeReport(collector, true);

var summaries = [],
finalSummary;
collector.files().forEach(function (file) {
summaries.push(objectUtils.summarizeFileCoverage(collector.fileCoverageFor(file)));
});
finalSummary = objectUtils.mergeSummaryObjects.apply(null, summaries);
obj.total = finalSummary;

test.ok(existsSync(jsonFile));
reportObj = JSON.parse(fs.readFileSync(jsonFile, 'utf8'));
test.deepEqual(Object.keys(obj).sort(), Object.keys(reportObj).sort());
Expand Down

0 comments on commit 81cf11d

Please sign in to comment.