From db001bebad9ef1b5a27297142fd328cbcc86759f Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 31 Jan 2021 14:29:07 +0800 Subject: [PATCH] fix(`require-yields`): check `test` part of if expression and check conditionals --- src/jsdocUtils.js | 4 ++- test/rules/assertions/requireYields.js | 36 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/jsdocUtils.js b/src/jsdocUtils.js index e361f7b07..8fed0125b 100644 --- a/src/jsdocUtils.js +++ b/src/jsdocUtils.js @@ -747,8 +747,10 @@ const hasYieldValue = (node, checkYieldReturnValue) => { case 'WithStatement': { return hasYieldValue(node.body, checkYieldReturnValue); } + case 'ConditionalExpression': case 'IfStatement': { - return hasYieldValue(node.consequent, checkYieldReturnValue) || + return hasYieldValue(node.test, checkYieldReturnValue) || + hasYieldValue(node.consequent, checkYieldReturnValue) || hasYieldValue(node.alternate, checkYieldReturnValue); } case 'TryStatement': { diff --git a/test/rules/assertions/requireYields.js b/test/rules/assertions/requireYields.js index 65308d200..b417b889b 100644 --- a/test/rules/assertions/requireYields.js +++ b/test/rules/assertions/requireYields.js @@ -536,6 +536,42 @@ export default { }, ], }, + { + code: ` + /** + * + */ + function * quux () { + if (yield false) { + + } + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @yields declaration.', + }, + ], + ignoreReadme: true, + }, + { + code: ` + /** + * + */ + function * quux () { + b ? yield false : true + } + `, + errors: [ + { + line: 2, + message: 'Missing JSDoc @yields declaration.', + }, + ], + ignoreReadme: true, + }, { code: ` /**