@@ -2,6 +2,7 @@ export default ({ preferred, negatedPreferred, attributes }) => (context) => {
2
2
const getCorrectFunctionFor = ( node , negated = false ) =>
3
3
( node . arguments . length === 1 ||
4
4
node . arguments [ 1 ] . value === true ||
5
+ node . arguments [ 1 ] . type !== "Literal" ||
5
6
( typeof node . arguments [ 1 ] . value === "string" &&
6
7
node . arguments [ 1 ] . value . toLowerCase ( ) === "true" ) ||
7
8
node . arguments [ 1 ] . value === "" ) &&
@@ -34,7 +35,7 @@ export default ({ preferred, negatedPreferred, attributes }) => (context) => {
34
35
) ,
35
36
} ) ;
36
37
} ,
37
- [ ` CallExpression[callee.property.name=/toBe(Truthy|Falsy)?|toEqual/][callee.object.callee.name='expect']` ] (
38
+ " CallExpression[callee.property.name=/toBe(Truthy|Falsy)?|toEqual/][callee.object.callee.name='expect']" (
38
39
node
39
40
) {
40
41
const {
@@ -65,7 +66,7 @@ export default ({ preferred, negatedPreferred, attributes }) => (context) => {
65
66
] ,
66
67
} ) ;
67
68
} ,
68
- [ ` CallExpression[callee.property.name=/toHaveProperty|toHaveAttribute/][callee.object.property.name='not'][callee.object.object.callee.name='expect']` ] (
69
+ " CallExpression[callee.property.name=/toHaveProperty|toHaveAttribute/][callee.object.property.name='not'][callee.object.object.callee.name='expect']" (
69
70
node
70
71
) {
71
72
const arg = node . arguments [ 0 ] . value ;
@@ -86,7 +87,7 @@ export default ({ preferred, negatedPreferred, attributes }) => (context) => {
86
87
) ,
87
88
} ) ;
88
89
} ,
89
- [ ` CallExpression[callee.object.callee.name='expect'][callee.property.name=/toHaveProperty|toHaveAttribute/]` ] (
90
+ " CallExpression[callee.object.callee.name='expect'][callee.property.name=/toHaveProperty|toHaveAttribute/]" (
90
91
node
91
92
) {
92
93
if ( ! isBannedArg ( node ) ) {
@@ -98,17 +99,27 @@ export default ({ preferred, negatedPreferred, attributes }) => (context) => {
98
99
const incorrectFunction = node . callee . property . name ;
99
100
100
101
const message = `Use ${ correctFunction } () instead of ${ incorrectFunction } (${ node . arguments
101
- . map ( ( { raw } ) => raw )
102
+ . map ( ( { raw, name } ) => raw || name )
102
103
. join ( ", " ) } )`;
104
+
105
+ const secondArgIsLiteral =
106
+ node . arguments . length === 2 && node . arguments [ 1 ] . type === "Literal" ;
107
+
103
108
context . report ( {
104
109
node : node . callee . property ,
105
110
message,
106
- fix : ( fixer ) => [
107
- fixer . replaceTextRange (
108
- [ node . callee . property . range [ 0 ] , node . range [ 1 ] ] ,
109
- `${ correctFunction } ()`
110
- ) ,
111
- ] ,
111
+ fix : ( fixer ) => {
112
+ if ( node . arguments . length === 1 || secondArgIsLiteral ) {
113
+ return [
114
+ fixer . replaceTextRange (
115
+ [ node . callee . property . range [ 0 ] , node . range [ 1 ] ] ,
116
+ `${ correctFunction } ()`
117
+ ) ,
118
+ ] ;
119
+ }
120
+
121
+ return null ;
122
+ } ,
112
123
} ) ;
113
124
} ,
114
125
} ;
0 commit comments