alecxe/eslint-plugin-protractor

View on GitHub
lib/rules/bare-element-finders.js

Summary

Maintainability
A
1 hr
Test Coverage
'use strict'
 
/**
* @fileoverview Warn if a bare ElementFinder or ElementArrayFinder is declared with no applied action
* @author Alexander Afanasyev
*/
 
var isElementFinder = require('../is-element-finder')
var isElementArrayFinder = require('../is-element-array-finder')
 
module.exports = {
meta: {
schema: []
},
 
Function `create` has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
create: function (context) {
function isBareExpression (node) {
return node.parent.type === 'ExpressionStatement'
}
 
return {
CallExpression: function (node) {
var isNodeElementFinder = isElementFinder(node)
var isNodeElementArrayFinder = isElementArrayFinder(node)
 
if (isNodeElementFinder || isNodeElementArrayFinder) {
if (isBareExpression(node)) {
var target = isNodeElementFinder ? 'ElementFinder' : 'ElementArrayFinder'
 
context.report({
node: node,
message: 'Bare ' + target + ' with no applied action detected.'
})
}
}
}
}
}
}