@@ -27,142 +27,190 @@ const ruleTester = new RuleTester({
2727const tests = {
2828 valid : [
2929 {
30- code : 'const [color, setColor] = useState()'
30+ code : `import { useState } from 'react';
31+ const [color, setColor] = useState()`
3132 } ,
3233 {
33- code : 'const [color, setColor] = useState(\'#ffffff\')'
34+ code : `import { useState } from 'react';
35+ const [color, setColor] = useState('#ffffff')`
3436 } ,
3537 {
36- code : 'const [color, setColor] = React.useState()'
38+ code : `import { useState } from 'react';
39+ const [color, setColor] = React.useState()`
3740 } ,
3841 {
39- code : 'const [color1, setColor1] = useState()'
42+ code : `import { useState } from 'react';
43+ const [color1, setColor1] = useState()`
4044 } ,
4145 {
42- code : 'const [color, setColor] = useState<string>()' ,
46+ code : 'const result = useState()'
47+ } ,
48+ {
49+ code : `import { useRef } from 'react';
50+ const result = useState()`
51+ } ,
52+ {
53+ code : 'const result = React.useState()'
54+ } ,
55+ {
56+ code : `import { useState } from 'react';
57+ const [color, setColor] = useState<string>()` ,
4358 parser : parsers . TYPESCRIPT_ESLINT
4459 } ,
4560 {
46- code : 'const [color, setColor] = useState<string>(\'#ffffff\')' ,
61+ code : `import { useState } from 'react';
62+ const [color, setColor] = useState<string>('#ffffff')` ,
4763 parser : parsers . TYPESCRIPT_ESLINT
4864 }
4965 ] . concat ( parsers . TS ( [
5066 {
51- code : 'const [color, setColor] = useState<string>()' ,
67+ code : `import { useState } from 'react';
68+ const [color, setColor] = useState<string>()` ,
5269 parser : parsers [ '@TYPESCRIPT_ESLINT' ]
5370 } ,
5471 {
55- code : 'const [color, setColor] = useState<string>(\'#ffffff\')' ,
72+ code : `import { useState } from 'react';
73+ const [color, setColor] = useState<string>('#ffffff')` ,
5674 parser : parsers [ '@TYPESCRIPT_ESLINT' ]
5775 }
5876 ] )
5977 ) ,
6078 invalid : [
6179 {
62- code : 'useState()' ,
80+ code : `import { useState } from 'react';
81+ useState()` ,
82+ errors : [ {
83+ message : 'setState call is not destructured into value + setter pair'
84+ } ]
85+ } ,
86+ {
87+ code : `import { useState as useStateAlternativeName } from 'react';
88+ useStateAlternativeName()` ,
6389 errors : [ {
6490 message : 'setState call is not destructured into value + setter pair'
6591 } ]
6692 } ,
6793 {
68- code : 'const result = useState()' ,
94+ code : `import { useState } from 'react';
95+ const result = useState()` ,
6996 errors : [ {
7097 message : 'setState call is not destructured into value + setter pair'
7198 } ]
7299 } ,
73100 {
74- code : 'const result = React.useState()' ,
101+ code : `import { useState } from 'react';
102+ const result = React.useState()` ,
75103 errors : [ {
76104 message : 'setState call is not destructured into value + setter pair'
77105 } ]
78106 } ,
79107 {
80- code : 'const [, , extra1] = useState()' ,
108+ code : `import { useState } from 'react';
109+ const [, , extra1] = useState()` ,
81110 errors : [ {
82111 message : 'setState call is not destructured into value + setter pair'
83112 } ]
84113 } ,
85114 {
86- code : 'const [, setColor] = useState()' ,
115+ code : `import { useState } from 'react';
116+ const [, setColor] = useState()` ,
87117 errors : [ {
88118 message : 'setState call is not destructured into value + setter pair'
89119 } ]
90120 } ,
91121 {
92- code : 'const { color } = useState()' ,
122+ code : `import { useState } from 'react';
123+ const { color } = useState()` ,
93124 errors : [ {
94125 message : 'setState call is not destructured into value + setter pair'
95126 } ]
96127 } ,
97128 {
98- code : 'const [] = useState()' ,
129+ code : `import { useState } from 'react';
130+ const [] = useState()` ,
99131 errors : [ {
100132 message : 'setState call is not destructured into value + setter pair'
101133 } ]
102134 } ,
103135 {
104- code : 'const [, , , ,] = useState()' ,
136+ code : `import { useState } from 'react';
137+ const [, , , ,] = useState()` ,
105138 errors : [ {
106139 message : 'setState call is not destructured into value + setter pair'
107140 } ]
108141 } ,
109142 {
110- code : 'const [color] = useState()' ,
143+ code : `import { useState } from 'react';
144+ const [color] = useState()` ,
111145 errors : [ {
112146 message : 'setState call is not destructured into value + setter pair'
113147 } ] ,
114- output : 'const [color, setColor] = useState()'
148+ output : `import { useState } from 'react';
149+ const [color, setColor] = useState()`
115150 } ,
116151 {
117- code : 'const [color, , extra1] = useState()' ,
152+ code : `import { useState } from 'react';
153+ const [color, , extra1] = useState()` ,
118154 errors : [ {
119155 message : 'setState call is not destructured into value + setter pair'
120156 } ] ,
121- output : 'const [color, setColor] = useState()'
157+ output : `import { useState } from 'react';
158+ const [color, setColor] = useState()`
122159 } ,
123160 {
124- code : 'const [color, setColor, extra1, extra2, extra3] = useState()' ,
161+ code : `import { useState } from 'react';
162+ const [color, setColor, extra1, extra2, extra3] = useState()` ,
125163 errors : [ {
126164 message : 'setState call is not destructured into value + setter pair'
127165 } ] ,
128- output : 'const [color, setColor] = useState()'
166+ output : `import { useState } from 'react';
167+ const [color, setColor] = useState()`
129168 } ,
130169 {
131- code : 'const [, makeColor] = useState()' ,
170+ code : `import { useState } from 'react';
171+ const [, makeColor] = useState()` ,
132172 errors : [ {
133173 message : 'setState call is not destructured into value + setter pair'
134174 } ]
135175 } ,
136176 {
137- code : 'const [color, setFlavor, extraneous] = useState()' ,
177+ code : `import { useState } from 'react';
178+ const [color, setFlavor, extraneous] = useState()` ,
138179 errors : [ {
139180 message : 'setState call is not destructured into value + setter pair'
140181 } ] ,
141- output : 'const [color, setColor] = useState()'
182+ output : `import { useState } from 'react';
183+ const [color, setColor] = useState()`
142184 } ,
143185 {
144- code : 'const [color, setFlavor] = useState()' ,
186+ code : `import { useState } from 'react';
187+ const [color, setFlavor] = useState()` ,
145188 errors : [ {
146189 message : 'setState call is not destructured into value + setter pair'
147190 } ] ,
148- output : 'const [color, setColor] = useState()'
191+ output : `import { useState } from 'react';
192+ const [color, setColor] = useState()`
149193 } ,
150194 {
151- code : 'const [color, setFlavor] = useState<string>()' ,
195+ code : `import { useState } from 'react';
196+ const [color, setFlavor] = useState<string>()` ,
152197 errors : [ {
153198 message : 'setState call is not destructured into value + setter pair'
154199 } ] ,
155- output : 'const [color, setColor] = useState<string>()' ,
200+ output : `import { useState } from 'react';
201+ const [color, setColor] = useState<string>()` ,
156202 parser : parsers . TYPESCRIPT_ESLINT
157203 }
158204 ] . concat (
159205 parsers . TS ( [
160206 {
161- code : 'const [color, setFlavor] = useState<string>()' ,
207+ code : `import { useState } from 'react';
208+ const [color, setFlavor] = useState<string>()` ,
162209 errors : [ {
163210 message : 'setState call is not destructured into value + setter pair'
164211 } ] ,
165- output : 'const [color, setColor] = useState<string>()' ,
212+ output : `import { useState } from 'react';
213+ const [color, setColor] = useState<string>()` ,
166214 parser : parsers [ '@TYPESCRIPT_ESLINT' ]
167215 }
168216 ] )
0 commit comments