This rule is inspired by this problem when ElementArrayFinder
methods were unintentionally used on ElementFinder
.
This rule is especially useful if ESLint is configured in your IDE to scan on the fly - you would catch these kinds of problems early.
Here is the current list of methods the rule is looking for:
'first', 'last', 'get', 'filter', 'map', 'each', 'reduce', 'count'
👎 Any use of the following patterns are considered warnings:
element(by.css(".class")).get(0);
$(".class").first();
element(by.css(".class")).last();
element(by.css(".class")).map(function (elm) {});
$(".class").filter(function (elm) {});
element(by.css(".class")).each(function (elm) {});
element(by.css(".class1")).element(by.css(".class2")).first();
element(by.css(".class1")).$(".class2").first();
$(".class1").element(by.css(".class2")).first();
$(".class1").$(".class2").first();
👍 The following patterns are not warnings:
element.all(by.css(".class")).get(0);
$$(".class").first();
element.all(by.css(".class")).last();
element.all(by.css(".class")).map(function (elm) {});
$$(".class").filter(function (elm) {});
element.all(by.css(".class")).each(function (elm) {});
element(by.css(".class1")).element.all(by.css(".class2")).first();
element(by.css(".class1")).$$(".class2").first();
$(".class1").element.all(by.css(".class2")).first();
$(".class1").$$(".class2").first();