@@ -147,6 +147,144 @@ ruleTester.run('no-rest-destructuring', rule, {
147147 }
148148 ` ,
149149 } ,
150+ {
151+ name : 'useSuspenseQuery is not captured' ,
152+ code : normalizeIndent `
153+ import { useSuspenseQuery } from '@tanstack/react-query'
154+
155+ function Component() {
156+ useSuspenseQuery()
157+ return
158+ }
159+ ` ,
160+ } ,
161+ {
162+ name : 'useSuspenseQuery is not destructured' ,
163+ code : normalizeIndent `
164+ import { useSuspenseQuery } from '@tanstack/react-query'
165+
166+ function Component() {
167+ const query = useSuspenseQuery()
168+ return
169+ }
170+ ` ,
171+ } ,
172+ {
173+ name : 'useSuspenseQuery is destructured without rest' ,
174+ code : normalizeIndent `
175+ import { useSuspenseQuery } from '@tanstack/react-query'
176+
177+ function Component() {
178+ const { data, isLoading, isError } = useSuspenseQuery()
179+ return
180+ }
181+ ` ,
182+ } ,
183+ {
184+ name : 'useSuspenseInfiniteQuery is not captured' ,
185+ code : normalizeIndent `
186+ import { useSuspenseInfiniteQuery } from '@tanstack/react-query'
187+
188+ function Component() {
189+ useSuspenseInfiniteQuery()
190+ return
191+ }
192+ ` ,
193+ } ,
194+ {
195+ name : 'useSuspenseInfiniteQuery is not destructured' ,
196+ code : normalizeIndent `
197+ import { useSuspenseInfiniteQuery } from '@tanstack/react-query'
198+
199+ function Component() {
200+ const query = useSuspenseInfiniteQuery()
201+ return
202+ }
203+ ` ,
204+ } ,
205+ {
206+ name : 'useSuspenseInfiniteQuery is destructured without rest' ,
207+ code : normalizeIndent `
208+ import { useSuspenseInfiniteQuery } from '@tanstack/react-query'
209+
210+ function Component() {
211+ const { data, isLoading, isError } = useSuspenseInfiniteQuery()
212+ return
213+ }
214+ ` ,
215+ } ,
216+ {
217+ name : 'useSuspenseQueries is not captured' ,
218+ code : normalizeIndent `
219+ import { useSuspenseQueries } from '@tanstack/react-query'
220+
221+ function Component() {
222+ useSuspenseQueries([])
223+ return
224+ }
225+ ` ,
226+ } ,
227+ {
228+ name : 'useSuspenseQueries is not destructured' ,
229+ code : normalizeIndent `
230+ import { useSuspenseQueries } from '@tanstack/react-query'
231+
232+ function Component() {
233+ const queries = useSuspenseQueries([])
234+ return
235+ }
236+ ` ,
237+ } ,
238+ {
239+ name : 'useSuspenseQueries array has no rest destructured element' ,
240+ code : normalizeIndent `
241+ import { useSuspenseQueries } from '@tanstack/react-query'
242+
243+ function Component() {
244+ const [query1, { data, isLoading }] = useSuspenseQueries([
245+ { queryKey: ['key1'], queryFn: () => {} },
246+ { queryKey: ['key2'], queryFn: () => {} },
247+ ])
248+ return
249+ }
250+ ` ,
251+ } ,
252+ {
253+ name : 'useSuspenseQuery is destructured with rest but not from tanstack query' ,
254+ code : normalizeIndent `
255+ import { useSuspenseQuery } from 'other-package'
256+
257+ function Component() {
258+ const { data, ...rest } = useSuspenseQuery()
259+ return
260+ }
261+ ` ,
262+ } ,
263+ {
264+ name : 'useSuspenseInfiniteQuery is destructured with rest but not from tanstack query' ,
265+ code : normalizeIndent `
266+ import { useSuspenseInfiniteQuery } from 'other-package'
267+
268+ function Component() {
269+ const { data, ...rest } = useSuspenseInfiniteQuery()
270+ return
271+ }
272+ ` ,
273+ } ,
274+ {
275+ name : 'useSuspenseQueries array has rest destructured element but not from tanstack query' ,
276+ code : normalizeIndent `
277+ import { useSuspenseQueries } from 'other-package'
278+
279+ function Component() {
280+ const [query1, { data, ...rest }] = useSuspenseQueries([
281+ { queryKey: ['key1'], queryFn: () => {} },
282+ { queryKey: ['key2'], queryFn: () => {} },
283+ ])
284+ return
285+ }
286+ ` ,
287+ } ,
150288 ] ,
151289 invalid : [
152290 {
@@ -188,5 +326,44 @@ ruleTester.run('no-rest-destructuring', rule, {
188326 ` ,
189327 errors : [ { messageId : 'objectRestDestructure' } ] ,
190328 } ,
329+ {
330+ name : 'useSuspenseQuery is destructured with rest' ,
331+ code : normalizeIndent `
332+ import { useSuspenseQuery } from '@tanstack/react-query'
333+
334+ function Component() {
335+ const { data, ...rest } = useSuspenseQuery()
336+ return
337+ }
338+ ` ,
339+ errors : [ { messageId : 'objectRestDestructure' } ] ,
340+ } ,
341+ {
342+ name : 'useSuspenseInfiniteQuery is destructured with rest' ,
343+ code : normalizeIndent `
344+ import { useSuspenseInfiniteQuery } from '@tanstack/react-query'
345+
346+ function Component() {
347+ const { data, ...rest } = useSuspenseInfiniteQuery()
348+ return
349+ }
350+ ` ,
351+ errors : [ { messageId : 'objectRestDestructure' } ] ,
352+ } ,
353+ {
354+ name : 'useSuspenseQueries is destructured with rest' ,
355+ code : normalizeIndent `
356+ import { useSuspenseQueries } from '@tanstack/react-query'
357+
358+ function Component() {
359+ const [query1, { data, ...rest }] = useSuspenseQueries([
360+ { queryKey: ['key1'], queryFn: () => {} },
361+ { queryKey: ['key2'], queryFn: () => {} },
362+ ])
363+ return
364+ }
365+ ` ,
366+ errors : [ { messageId : 'objectRestDestructure' } ] ,
367+ } ,
191368 ] ,
192369} )
0 commit comments