Skip to content

Commit e36d25c

Browse files
chiawendtsindresorhus
authored andcommitted
Fix prefer-includes fixer omitting parentheses (#287)
1 parent a7b1bdb commit e36d25c

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

rules/prefer-includes.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ const isIndexOf = node => {
1212

1313
const isNegativeOne = (operator, value) => operator === '-' && value === 1;
1414

15-
const getSourceCode = (context, node) => (
16-
context.getSourceCode().getText(node)
17-
);
18-
1915
const report = (context, node, target, pattern) => {
20-
const targetSource = getSourceCode(context, target);
21-
const patternSource = getSourceCode(context, pattern);
16+
const sourceCode = context.getSourceCode();
17+
const memberExpressionNode = target.parent;
18+
const dotToken = sourceCode.getTokenBefore(memberExpressionNode.property);
19+
const targetSource = sourceCode.getText().slice(memberExpressionNode.range[0], dotToken.range[0]);
20+
const patternSource = sourceCode.getText(pattern);
2221
context.report({
2322
node,
2423
message: 'Use `.includes()`, rather than `.indexOf()`, when checking for existence.',

test/prefer-includes.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ ruleTester.run('prefer-includes', rule, {
6060
code: '\'\'.indexOf(\'foo\') < 0',
6161
output: '!\'\'.includes(\'foo\')',
6262
errors
63+
},
64+
{
65+
code: '(a || b).indexOf(\'foo\') === -1',
66+
output: '!(a || b).includes(\'foo\')',
67+
errors
6368
}
6469
]
6570
});

0 commit comments

Comments
 (0)