@@ -162,6 +162,59 @@ ruleTester.run('no-void-query-fn', rule, {
162162 }
163163 ` ,
164164 } ,
165+ {
166+ name : 'useInfiniteQuery queryFn returns a value' ,
167+ code : normalizeIndent `
168+ import { useInfiniteQuery } from '@tanstack/react-query'
169+
170+ function Component() {
171+ const query = useInfiniteQuery({
172+ queryKey: ['test'],
173+ queryFn: ({ pageParam }) => ({ data: 'test', page: pageParam }),
174+ initialPageParam: 0,
175+ getNextPageParam: (lastPage) => undefined,
176+ })
177+ return null
178+ }
179+ ` ,
180+ } ,
181+ {
182+ name : 'useSuspenseQuery queryFn returns a value' ,
183+ code : normalizeIndent `
184+ import { useSuspenseQuery } from '@tanstack/react-query'
185+
186+ function Component() {
187+ const query = useSuspenseQuery({
188+ queryKey: ['test'],
189+ queryFn: () => ({ data: 'test' }),
190+ })
191+ return null
192+ }
193+ ` ,
194+ } ,
195+ {
196+ name : 'queryOptions queryFn returns a value' ,
197+ code : normalizeIndent `
198+ import { queryOptions } from '@tanstack/react-query'
199+
200+ const options = queryOptions({
201+ queryKey: ['test'],
202+ queryFn: () => ({ data: 'test' }),
203+ })
204+ ` ,
205+ } ,
206+ {
207+ name : 'fetchQuery queryFn returns a value' ,
208+ code : normalizeIndent `
209+ import { QueryClient } from '@tanstack/react-query'
210+
211+ const queryClient = new QueryClient()
212+ queryClient.fetchQuery({
213+ queryKey: ['test'],
214+ queryFn: () => fetch('/api/test').then((r) => r.json()),
215+ })
216+ ` ,
217+ } ,
165218 ] ,
166219 invalid : [
167220 {
@@ -321,5 +374,70 @@ ruleTester.run('no-void-query-fn', rule, {
321374 ` ,
322375 errors : [ { messageId : 'noVoidReturn' } ] ,
323376 } ,
377+ {
378+ name : 'useInfiniteQuery queryFn returns void' ,
379+ code : normalizeIndent `
380+ import { useInfiniteQuery } from '@tanstack/react-query'
381+
382+ function Component() {
383+ const query = useInfiniteQuery({
384+ queryKey: ['test'],
385+ queryFn: async ({ pageParam }) => {
386+ await fetch('/api/test?page=' + pageParam)
387+ },
388+ initialPageParam: 0,
389+ getNextPageParam: (lastPage) => undefined,
390+ })
391+ return null
392+ }
393+ ` ,
394+ errors : [ { messageId : 'noVoidReturn' } ] ,
395+ } ,
396+ {
397+ name : 'useSuspenseQuery queryFn returns void' ,
398+ code : normalizeIndent `
399+ import { useSuspenseQuery } from '@tanstack/react-query'
400+
401+ function Component() {
402+ const query = useSuspenseQuery({
403+ queryKey: ['test'],
404+ queryFn: () => {
405+ console.log('fetching')
406+ },
407+ })
408+ return null
409+ }
410+ ` ,
411+ errors : [ { messageId : 'noVoidReturn' } ] ,
412+ } ,
413+ {
414+ name : 'queryOptions queryFn returns void' ,
415+ code : normalizeIndent `
416+ import { queryOptions } from '@tanstack/react-query'
417+
418+ const options = queryOptions({
419+ queryKey: ['test'],
420+ queryFn: async () => {
421+ await fetch('/api/test')
422+ },
423+ })
424+ ` ,
425+ errors : [ { messageId : 'noVoidReturn' } ] ,
426+ } ,
427+ {
428+ name : 'fetchQuery queryFn returns void' ,
429+ code : normalizeIndent `
430+ import { QueryClient } from '@tanstack/react-query'
431+
432+ const queryClient = new QueryClient()
433+ queryClient.fetchQuery({
434+ queryKey: ['test'],
435+ queryFn: async () => {
436+ await fetch('/api/test')
437+ },
438+ })
439+ ` ,
440+ errors : [ { messageId : 'noVoidReturn' } ] ,
441+ } ,
324442 ] ,
325443} )
0 commit comments