Skip to content

Commit db001be

Browse files
committed
fix(require-yields): check test part of if expression and check conditionals
1 parent de345cf commit db001be

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/jsdocUtils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,8 +747,10 @@ const hasYieldValue = (node, checkYieldReturnValue) => {
747747
case 'WithStatement': {
748748
return hasYieldValue(node.body, checkYieldReturnValue);
749749
}
750+
case 'ConditionalExpression':
750751
case 'IfStatement': {
751-
return hasYieldValue(node.consequent, checkYieldReturnValue) ||
752+
return hasYieldValue(node.test, checkYieldReturnValue) ||
753+
hasYieldValue(node.consequent, checkYieldReturnValue) ||
752754
hasYieldValue(node.alternate, checkYieldReturnValue);
753755
}
754756
case 'TryStatement': {

test/rules/assertions/requireYields.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,42 @@ export default {
536536
},
537537
],
538538
},
539+
{
540+
code: `
541+
/**
542+
*
543+
*/
544+
function * quux () {
545+
if (yield false) {
546+
547+
}
548+
}
549+
`,
550+
errors: [
551+
{
552+
line: 2,
553+
message: 'Missing JSDoc @yields declaration.',
554+
},
555+
],
556+
ignoreReadme: true,
557+
},
558+
{
559+
code: `
560+
/**
561+
*
562+
*/
563+
function * quux () {
564+
b ? yield false : true
565+
}
566+
`,
567+
errors: [
568+
{
569+
line: 2,
570+
message: 'Missing JSDoc @yields declaration.',
571+
},
572+
],
573+
ignoreReadme: true,
574+
},
539575
{
540576
code: `
541577
/**

0 commit comments

Comments
 (0)