Skip to content

Commit

Permalink
fix: "E" is not showing in the HTML reporter for "implicit else" bran…
Browse files Browse the repository at this point in the history
…ches after pull 633 (#663)
  • Loading branch information
adrian-burlacu-software committed Jan 17, 2022
1 parent aaa6dc5 commit 7818922
Show file tree
Hide file tree
Showing 3 changed files with 163 additions and 0 deletions.
16 changes: 16 additions & 0 deletions packages/istanbul-reports/lib/html/annotator.js
Expand Up @@ -164,6 +164,22 @@ function annotateBranches(fileCoverage, structuredText) {
gt;
closeSpan = lt + '/span' + gt;

// If the branch is an implicit else from an if statement,
// then the coverage report won't show a statistic.
// Therefore, the previous branch will be used to report that
// there is no coverage on that implicit branch.
if (
count === 0 &&
startLine === undefined &&
branchMeta[branchName].type === 'if'
) {
const prevMeta = metaArray[i - 1];
startCol = prevMeta.start.column;
endCol = prevMeta.end.column + 1;
startLine = prevMeta.start.line;
endLine = prevMeta.end.line;
}

if (count === 0 && structuredText[startLine]) {
//skip branches taken
if (endLine !== startLine) {
Expand Down
127 changes: 127 additions & 0 deletions packages/istanbul-reports/test/fixtures/github-649.json
@@ -0,0 +1,127 @@
{
"path": "/Users/benjamincoe/bcoe/istanbul-lib-instrument/src/index.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 9,
"column": 2
}
},
"1": {
"start": {
"line": 2,
"column": 10
},
"end": {
"line": 2,
"column": 11
}
},
"2": {
"start": {
"line": 4,
"column": 4
},
"end": {
"line": 6,
"column": 5
}
},
"3": {
"start": {
"line": 5,
"column": 6
},
"end": {
"line": 5,
"column": 12
}
},
"4": {
"start": {
"line": 8,
"column": 4
},
"end": {
"line": 8,
"column": 13
}
}
},
"fnMap": {
"0": {
"name": "(anonymous_0)",
"decl": {
"start": {
"line": 1,
"column": 16
},
"end": {
"line": 1,
"column": 17
}
},
"loc": {
"start": {
"line": 1,
"column": 28
},
"end": {
"line": 9,
"column": 1
}
},
"line": 1
}
},
"branchMap": {
"0": {
"loc": {
"start": {
"line": 4,
"column": 4
},
"end": {
"line": 6,
"column": 5
}
},
"type": "if",
"locations": [{
"start": {
"line": 4,
"column": 4
},
"end": {
"line": 6,
"column": 5
}
}, {
"start": {
},
"end": {
}
}
],
"line": 4
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1
},
"f": {
"0": 1
},
"b": {
"0": [1, 0]
},
"hash": "edc1f904dd2d4c7214941451a07aabfc0aee6ec0"
}
20 changes: 20 additions & 0 deletions packages/istanbul-reports/test/html/annotator.js
Expand Up @@ -81,5 +81,25 @@ describe('annotator', () => {
'<span class="fstat-no" title="function not covered" > function test () {};</span>'
);
});

// see: https://github.com/istanbuljs/istanbuljs/issues/649
it('handles implicit else branches', () => {
const annotated = annotator(getFixture('github-649'), {
getSource() {
return `exports.testy = function () {
let a = 0;
if (!a) {
a = 3;
}
return a;
};`;
}
});
annotated.annotatedCode[3].should.equal(
' <span class="missing-if-branch" title="else path not taken" >E</span> if (!a) {'
);
});
});
});

0 comments on commit 7818922

Please sign in to comment.