New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix coverage.branchMap else location. #633
Conversation
@@ -420,7 +420,7 @@ function coverIfBranches(path) { | |||
if (ignoreElse) { | |||
this.setAttr(n.alternate, 'skip-all', true); | |||
} else { | |||
this.insertBranchCounter(path.get('alternate'), branch, n.loc); | |||
this.insertBranchCounter(path.get('alternate'), branch); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I'm understanding correctly, does this end up using the column position of the alternate
node, whereas before it was the start of the if
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exactly,
before: the line and column was both at the start of the if.
after: line+col at the else. If no else/next alternate, then result is alternate locations[1]: {start: {}, end: {}}
thank you!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left nit and a question.
Version # updated by the tooling. Co-authored-by: Benjamin E. Coe <bencoe@google.com>
@adrian-burlacu-software thank you for the contribution 👍 |
The else statement in an if ... else statement is not correct.
Input code:
if (x) { output = x; } else { output = false; }
Problem output:
branchMap: ..."1": { "loc": { "start": { "line": 7, "column": 2 }, "end": { "line": 12, "column": 3 } }, "type": "if", "locations": [{ "start": { "line": 7, "column": 2 }, "end": { "line": 12, "column": 3 } }, { "start": { "line": 7, // PROBLEM "column": 2 }, "end": { "line": 12, "column": 3 } } ], "line": 7 }
Expected output:
branchMap: ..."1": { "loc": { "start": { "line": 7, "column": 2 }, "end": { "line": 12, "column": 3 } }, "type": "if", "locations": [{ "start": { "line": 7, "column": 2 }, "end": { "line": 12, "column": 3 } }, { "start": { "line": 10, // CORRECT "column": 7 }, "end": { "line": 12, "column": 3 } } ], "line": 7 }
Caveats: Your testing code on fails to test the map properties, so I also omitted those tests because they are too far outside the scope of fixing this single bug. Cheerio to the team of my fave JavaScript coverage library.