From 9cba6268aa929edcb8b6b0ee8de49a28e3d05937 Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Sun, 23 Jun 2019 00:01:19 +1200 Subject: [PATCH] fix: add defined guards to util functions (#285) --- src/rules/__tests__/no-empty-title.js | 1 + src/rules/util.js | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/rules/__tests__/no-empty-title.js b/src/rules/__tests__/no-empty-title.js index 886798a82..8070c47a2 100644 --- a/src/rules/__tests__/no-empty-title.js +++ b/src/rules/__tests__/no-empty-title.js @@ -11,6 +11,7 @@ const ruleTester = new RuleTester({ ruleTester.run('no-empty-title', rule, { valid: [ + 'describe()', 'someFn("", function () {})', 'describe(1, function () {})', 'describe("foo", function () {})', diff --git a/src/rules/util.js b/src/rules/util.js index 0a6aad50f..b067abfd5 100644 --- a/src/rules/util.js +++ b/src/rules/util.js @@ -125,18 +125,24 @@ const isTestCase = node => testCaseNames[getNodeName(node.callee)]; const isDescribe = node => - node.type === 'CallExpression' && describeAliases[getNodeName(node.callee)]; + node && + node.type === 'CallExpression' && + describeAliases[getNodeName(node.callee)]; const isFunction = node => - node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression'; + node && + (node.type === 'FunctionExpression' || + node.type === 'ArrowFunctionExpression'); const isString = node => - (node.type === 'Literal' && typeof node.value === 'string') || - isTemplateLiteral(node); + node && + ((node.type === 'Literal' && typeof node.value === 'string') || + isTemplateLiteral(node)); -const isTemplateLiteral = node => node.type === 'TemplateLiteral'; +const isTemplateLiteral = node => node && node.type === 'TemplateLiteral'; -const hasExpressions = node => node.expressions && node.expressions.length > 0; +const hasExpressions = node => + node && node.expressions && node.expressions.length > 0; const getStringValue = arg => isTemplateLiteral(arg) ? arg.quasis[0].value.raw : arg.value;