From 2c3c84ccbd7ddcd62dddf786acd9729875fb6b41 Mon Sep 17 00:00:00 2001 From: Zelys Date: Sun, 29 Mar 2026 15:58:41 -0500 Subject: [PATCH] test(eslint-plugin-query/no-void-query-fn): add coverage for prefetchQuery, prefetchInfiniteQuery, ensureQueryData, ensureInfiniteQueryData --- .../src/__tests__/no-void-query-fn.test.ts | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts index e26c21de8f..c47856fbc6 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts @@ -215,6 +215,58 @@ ruleTester.run('no-void-query-fn', rule, { }) `, }, + { + name: 'prefetchQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'prefetchInfiniteQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, + { + name: 'ensureQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'ensureInfiniteQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, ], invalid: [ { @@ -439,5 +491,67 @@ ruleTester.run('no-void-query-fn', rule, { `, errors: [{ messageId: 'noVoidReturn' }], }, + { + name: 'prefetchQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'prefetchInfiniteQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureInfiniteQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, ], })