Skip to content

Commit 67441d1

Browse files
committed
fix(rules): 'use-simple-repeaters' fails if variable is used as a locator
1 parent 6151c73 commit 67441d1

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

lib/rules/use-simple-repeaters.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,26 @@ module.exports = {
1313
create: function (context) {
1414
return {
1515
'CallExpression': function (node) {
16-
if (node.arguments) {
16+
if (node.arguments && node.arguments[0] && node.arguments[0].hasOwnProperty('value')) {
1717
var object = node.callee.object
1818
var property = node.callee.property
1919

2020
if (object && property && object.name === 'by' && property.name === 'repeater') {
2121
var repeaterValue = node.arguments[0].value
22+
if (repeaterValue) {
23+
if (repeaterValue.indexOf('|') > 0) {
24+
context.report({
25+
node: node,
26+
message: 'Unexpected filter inside a by.repeater() locator.'
27+
})
28+
}
2229

23-
if (repeaterValue.indexOf('|') > 0) {
24-
context.report({
25-
node: node,
26-
message: 'Unexpected filter inside a by.repeater() locator.'
27-
})
28-
}
29-
30-
if (repeaterValue.indexOf('track by') > 0) {
31-
context.report({
32-
node: node,
33-
message: 'Unexpected "track by" inside a by.repeater() locator.'
34-
})
30+
if (repeaterValue.indexOf('track by') > 0) {
31+
context.report({
32+
node: node,
33+
message: 'Unexpected "track by" inside a by.repeater() locator.'
34+
})
35+
}
3536
}
3637
}
3738
}

test/rules/use-simple-repeaters.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ var eslintTester = new RuleTester()
88
eslintTester.run('use-simple-repeaters', rule, {
99
valid: [
1010
'element.all(by.repeater("item in items"));',
11-
'element.all(by.exactRepeater("item in items"));'
11+
'element.all(by.exactRepeater("item in items"));',
12+
'element.all(by.repeater(arg));',
13+
'element.all(by.exactRepeater(arg));',
14+
'element.all(by.repeater());',
15+
'element.all(by.repeater(undefined));'
1216
],
1317

1418
invalid: [

0 commit comments

Comments
 (0)