Skip to content

Commit

Permalink
Roll back to the prev. branch on implicit else.
Browse files Browse the repository at this point in the history
  • Loading branch information
adrian-burlacu-software committed Jan 5, 2022
1 parent aaa6dc5 commit 18fc614
Show file tree
Hide file tree
Showing 6 changed files with 156 additions and 0 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions packages/istanbul-reports/lib/html/annotator.js
Expand Up @@ -164,6 +164,14 @@ function annotateBranches(fileCoverage, structuredText) {
gt;
closeSpan = lt + '/span' + gt;

if (count === 0 && startLine === undefined && branchMeta[branchName].type === 'if') {
let 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 All @@ -173,6 +181,7 @@ function annotateBranches(fileCoverage, structuredText) {
}
text = structuredText[startLine].text;
if (branchMeta[branchName].type === 'if') {
debugger;
// 'if' is a special case
// since the else branch might not be visible, being non-existent
text.insertAt(
Expand Down
Binary file modified packages/istanbul-reports/lib/html/assets/favicon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified packages/istanbul-reports/lib/html/assets/sort-arrow-sprite.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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 18fc614

Please sign in to comment.