Skip to content

Commit a2c0f9e

Browse files
authored
fix: use range instead of start/end properties (#30)
* fix: use range instead of start/end properties * Prettier fixes
1 parent acab395 commit a2c0f9e

File tree

4 files changed

+50
-26
lines changed

4 files changed

+50
-26
lines changed

lib/createBannedAttributeRule.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ module.exports = ({ preferred, negatedPreferred, attributes }) => context => {
2525
node,
2626
fix(fixer) {
2727
return fixer.replaceTextRange(
28-
[node.callee.object.property.start, node.end],
28+
[node.callee.object.property.range[0], node.range[1]],
2929
`${correctFunction}()`
3030
);
3131
},
@@ -55,9 +55,9 @@ module.exports = ({ preferred, negatedPreferred, attributes }) => context => {
5555
message: `Use ${correctFunction}() instead of checking .${name} directly`,
5656
fix(fixer) {
5757
return [
58-
fixer.removeRange([property.start - 1, property.end]),
58+
fixer.removeRange([property.range[0] - 1, property.range[1]]),
5959
fixer.replaceTextRange(
60-
[node.callee.property.start, node.end],
60+
[node.callee.property.range[0], node.range[1]],
6161
`${correctFunction}()`
6262
),
6363
];
@@ -78,7 +78,7 @@ module.exports = ({ preferred, negatedPreferred, attributes }) => context => {
7878
node,
7979
fix(fixer) {
8080
return fixer.replaceTextRange(
81-
[node.callee.object.property.start, node.end],
81+
[node.callee.object.property.range[0], node.range[1]],
8282
`${correctFunction}()`
8383
);
8484
},
@@ -102,7 +102,7 @@ module.exports = ({ preferred, negatedPreferred, attributes }) => context => {
102102
fix(fixer) {
103103
return [
104104
fixer.replaceTextRange(
105-
[node.callee.property.start, node.end],
105+
[node.callee.property.range[0], node.range[1]],
106106
`${correctFunction}()`
107107
),
108108
];

lib/rules/prefer-empty.js

+32-8
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ module.exports = {
2424
message: 'Use toBeEmpty instead of checking inner html.',
2525
fix(fixer) {
2626
return [
27-
fixer.removeRange([node.left.property.start - 1, node.end]),
27+
fixer.removeRange([
28+
node.left.property.range[0] - 1,
29+
node.range[1],
30+
]),
2831
fixer.replaceText(
2932
node.parent.parent.property,
3033
!!node.parent.parent.parent.arguments[0].value ===
@@ -45,7 +48,10 @@ module.exports = {
4548
message: 'Use toBeEmpty instead of checking inner html.',
4649
fix(fixer) {
4750
return [
48-
fixer.removeRange([node.left.property.start - 1, node.end]),
51+
fixer.removeRange([
52+
node.left.property.range[0] - 1,
53+
node.range[1],
54+
]),
4955
fixer.replaceText(
5056
node.parent.parent.property,
5157
!!node.parent.parent.parent.arguments[0].value ===
@@ -67,7 +73,10 @@ module.exports = {
6773
message: 'Use toBeEmpty instead of checking inner html.',
6874
fix(fixer) {
6975
return [
70-
fixer.removeRange([node.property.start - 1, node.property.end]),
76+
fixer.removeRange([
77+
node.property.range[0] - 1,
78+
node.property.range[1],
79+
]),
7180
fixer.replaceText(node.parent.parent.property, 'toBeEmpty'),
7281
fixer.remove(node.parent.parent.parent.arguments[0]),
7382
];
@@ -84,7 +93,10 @@ module.exports = {
8493
message: 'Use toBeEmpty instead of checking inner html.',
8594
fix(fixer) {
8695
return [
87-
fixer.removeRange([node.property.start - 1, node.property.end]),
96+
fixer.removeRange([
97+
node.property.range[0] - 1,
98+
node.property.range[1],
99+
]),
88100
fixer.replaceText(
89101
node.parent.parent.parent.property,
90102
'toBeEmpty'
@@ -103,7 +115,10 @@ module.exports = {
103115
message: 'Use toBeEmpty instead of checking inner html.',
104116
fix(fixer) {
105117
return [
106-
fixer.removeRange([node.property.start - 1, node.property.end]),
118+
fixer.removeRange([
119+
node.property.range[0] - 1,
120+
node.property.range[1],
121+
]),
107122
fixer.replaceText(node.parent.parent.property, 'toBeEmpty'),
108123
];
109124
},
@@ -119,7 +134,10 @@ module.exports = {
119134
message: 'Use toBeEmpty instead of checking inner html.',
120135
fix(fixer) {
121136
return [
122-
fixer.removeRange([node.property.start - 1, node.property.end]),
137+
fixer.removeRange([
138+
node.property.range[0] - 1,
139+
node.property.range[1],
140+
]),
123141
fixer.replaceText(
124142
node.parent.parent.parent.property,
125143
'toBeEmpty'
@@ -139,7 +157,10 @@ module.exports = {
139157
message: 'Use toBeEmpty instead of checking inner html.',
140158
fix(fixer) {
141159
return [
142-
fixer.removeRange([node.property.start - 1, node.property.end]),
160+
fixer.removeRange([
161+
node.property.range[0] - 1,
162+
node.property.range[1],
163+
]),
143164
fixer.replaceText(
144165
node.parent.parent.parent.property,
145166
'toBeEmpty'
@@ -157,7 +178,10 @@ module.exports = {
157178
message: 'Use toBeEmpty instead of checking inner html.',
158179
fix(fixer) {
159180
return [
160-
fixer.removeRange([node.property.start - 1, node.property.end]),
181+
fixer.removeRange([
182+
node.property.range[0] - 1,
183+
node.property.range[1],
184+
]),
161185
fixer.replaceText(node.parent.parent.property, 'toBeEmpty'),
162186
fixer.remove(node.parent.parent.parent.arguments[0]),
163187
];

lib/rules/prefer-focus.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ module.exports = {
4747
];
4848
} else {
4949
return [
50-
fixer.removeRange([node.start, element.start]),
50+
fixer.removeRange([node.range[0], element.range[0]]),
5151
fixer.insertTextAfterRange(
52-
[element.end, element.end + 1],
52+
[element.range[1], element.range[1] + 1],
5353
'.not.toHaveFocus()'
5454
),
5555
];
@@ -89,9 +89,9 @@ module.exports = {
8989
fix(fixer) {
9090
if (!element.name) {
9191
return [
92-
fixer.removeRange([node.start, element.start]),
92+
fixer.removeRange([node.range[0], element.range[0]]),
9393
fixer.insertTextAfterRange(
94-
[element.end, element.end + 1],
94+
[element.range[1], element.range[1] + 1],
9595
'.toHaveFocus()'
9696
),
9797
];

lib/rules/prefer-to-have-attribute.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ module.exports = {
2828
message: `Use toHaveAttribute instead of asserting on getAttribute`,
2929
fix(fixer) {
3030
return [
31-
fixer.removeRange([node.callee.object.end, node.end]),
31+
fixer.removeRange([node.callee.object.range[1], node.range[1]]),
3232
fixer.replaceTextRange(
3333
[
34-
node.parent.parent.property.start,
35-
node.parent.parent.parent.end,
34+
node.parent.parent.property.range[0],
35+
node.parent.parent.parent.range[1],
3636
],
3737
`not.toHaveAttribute(${node.arguments[0].raw})`
3838
),
@@ -48,7 +48,7 @@ module.exports = {
4848
message: `Use toHaveAttribute instead of asserting on getAttribute`,
4949
fix(fixer) {
5050
return [
51-
fixer.removeRange([node.callee.object.end, node.end]),
51+
fixer.removeRange([node.callee.object.range[1], node.range[1]]),
5252
fixer.replaceText(node.parent.parent.property, 'toHaveAttribute'),
5353
fixer.replaceText(
5454
node.parent.parent.parent.arguments[0],
@@ -86,7 +86,7 @@ module.exports = {
8686
);
8787
}
8888
return [
89-
fixer.removeRange([node.callee.object.end, node.end]),
89+
fixer.removeRange([node.callee.object.range[1], node.range[1]]),
9090
fixer.replaceText(
9191
node.parent.parent.property,
9292
`${isNullOrEmpty ? 'not.' : ''}toHaveAttribute`
@@ -121,7 +121,7 @@ module.exports = {
121121
message: `Use toHaveAttribute instead of asserting on hasAttribute`,
122122
fix(fixer) {
123123
return [
124-
fixer.removeRange([node.callee.object.end, node.end]),
124+
fixer.removeRange([node.callee.object.range[1], node.range[1]]),
125125
fixer.replaceText(
126126
node.parent.parent.property,
127127
`${
@@ -152,11 +152,11 @@ module.exports = {
152152
message: `Use toHaveAttribute instead of asserting on hasAttribute`,
153153
fix(fixer) {
154154
return [
155-
fixer.removeRange([node.callee.object.end, node.end]),
155+
fixer.removeRange([node.callee.object.range[1], node.range[1]]),
156156
fixer.replaceTextRange(
157157
[
158-
node.parent.parent.property.start,
159-
node.parent.parent.parent.end,
158+
node.parent.parent.property.range[0],
159+
node.parent.parent.parent.range[1],
160160
],
161161
`${
162162
node.parent.parent.property.name === 'toBeFalsy' ? 'not.' : ''

0 commit comments

Comments
 (0)