alecxe/eslint-plugin-protractor

View on GitHub
lib/is-element-finder.js

Summary

Maintainability
A
1 hr
Test Coverage
'use strict'
 
/**
* Checks if a given node is an ElementFinder instance.
*
* @fileoverview Utility function to determine if a node is an ElementFinder
* @author Alexander Afanasyev
*/
 
var elementArrayFinderGetMethods = [
'get',
'last',
'first'
]
var elementFinderConstructors = [
'$',
'element'
]
 
Function `exports` has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
module.exports = function (node) {
var callee = node.callee
if (!callee) {
return false
}
 
// handling raw $ and element
if (elementFinderConstructors.indexOf(callee.name) > -1) {
return true
}
 
// handling $ and element chaining
if (callee.type === 'MemberExpression' && callee.property) {
if (elementFinderConstructors.indexOf(callee.property.name) > -1) {
return true
}
 
// got element finder from element array finder
var isElementArrayFinderMethod = elementArrayFinderGetMethods.indexOf(callee.property.name) > -1
if (isElementArrayFinderMethod && callee.object && isElementArrayFinder(callee.object)) {
return true
}
}
 
Avoid too many `return` statements within this function.
return false
}
var isElementArrayFinder = require('./is-element-array-finder')