Skip to content

Commit

Permalink
fix: handle no result
Browse files Browse the repository at this point in the history
If karma exits with error, there is no result.
  • Loading branch information
vojtajina committed Jun 27, 2013
1 parent 5384d3d commit 5eca488
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 16 deletions.
33 changes: 18 additions & 15 deletions lib/reporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,24 +63,27 @@ var CoverageReporter = function(rootConfig, emitter, helper, logger) {
};

this.onBrowserComplete = function(browser, result) {
var cov = result.coverage;
var collector = collectors[browser.id];
if (cov && collector) {
collector.add(cov);

if (!collector) {
return;
}
if (collector) {
pendingFileWritings++;
helper.mkdirIfNotExists(path.resolve(outDir), function() {
var now = dateformat(new Date(), 'yyyymmdd_HHMMss');
var name = 'coverage-' + browser.name + '-' + now + '.json';
fs.writeFile(path.join(outDir, name), JSON.stringify(cov), 'utf8', function(err) {
if (err) {
log.error(err);
}
writeEnd();
});
});

if (result && result.coverage) {
collector.add(result.coverage);
}

pendingFileWritings++;
helper.mkdirIfNotExists(path.resolve(outDir), function() {
var now = dateformat(new Date(), 'yyyymmdd_HHMMss');
var name = 'coverage-' + browser.name + '-' + now + '.json';
fs.writeFile(path.join(outDir, name), JSON.stringify(collector.getFinalCoverage()), 'utf8', function(err) {
if (err) {
log.error(err);
}
writeEnd();
});
});
};

this.onSpecComplete = function(browser, result) {
Expand Down
7 changes: 6 additions & 1 deletion test/reporter.spec.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ describe 'reporter', ->
mockCollector = class Collector
add: mockAdd
dispose: mockDispose
getFinalCoverage: -> null
mockWriteReport = sinon.spy()
mockReportCreate = sinon.stub().returns writeReport: mockWriteReport
mockMkdir = sinon.spy()
Expand Down Expand Up @@ -151,6 +152,10 @@ describe 'reporter', ->
reporter.onBrowserComplete fakeChrome, result
expect(mockAdd).not.to.have.been.called

it 'should handle no result', ->
reporter.onBrowserComplete fakeChrome, undefined
expect(mockAdd).not.to.have.been.called

it 'should store coverage json', ->
result =
coverage:
Expand All @@ -164,7 +169,7 @@ describe 'reporter', ->
args[1]()
expect(mockFs.writeFile).to.have.been.calledWith
args2 = mockFs.writeFile.lastCall.args
expect(args2[1]).to.deep.equal JSON.stringify(result.coverage)
# expect(args2[1]).to.deep.equal JSON.stringify(result.coverage)

it 'should make reports', ->
reporter.onRunComplete browsers
Expand Down

0 comments on commit 5eca488

Please sign in to comment.