From c4af51cefbac29cde020ead3c3e1a9ae0ffc56ab Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 8 May 2025 02:53:26 +0900 Subject: [PATCH 1/4] chore: add typescript-eslint/require-await rule Co-authored-by: MINSEONG KIM <65233075+minseong0324@users.noreply.github.com> --- eslint.config.js | 6 +++++- .../src/__tests__/inject-infinite-query.test-d.ts | 2 +- .../src/__tests__/index.test.ts | 4 ++-- packages/query-codemods/eslint.config.js | 1 - packages/query-core/src/__tests__/queryObserver.test.tsx | 2 +- packages/react-query/src/__tests__/useQuery.test-d.tsx | 2 +- packages/react-query/src/__tests__/useQuery.test.tsx | 4 ++-- 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index f156cd2e9c2..080ab5e19e0 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -39,13 +39,17 @@ export default [ ], '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-unsafe-function-type': 'off', + '@typescript-eslint/require-await': 'error', 'no-case-declarations': 'off', }, }, { files: ['**/*.spec.ts*', '**/*.test.ts*', '**/*.test-d.ts*'], plugins: { vitest }, - rules: vitest.configs.recommended.rules, + rules: { + ...vitest.configs.recommended.rules, + '@typescript-eslint/require-await': 'error', + }, settings: { vitest: { typecheck: true } }, }, ] diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts index f07e0ded244..93bda3204ea 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -23,7 +23,7 @@ describe('injectInfiniteQuery', () => { vi.useRealTimers() }) - test('should narrow type after isSuccess', async () => { + test('should narrow type after isSuccess', () => { const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ queryKey: ['infiniteQuery'], diff --git a/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts b/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts index 763a7edd58e..6e09d8a86e2 100644 --- a/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts +++ b/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts @@ -12,7 +12,7 @@ describe('broadcastQueryClient', () => { queryCache = queryClient.getQueryCache() }) - it('should subscribe to the query cache', async () => { + it('should subscribe to the query cache', () => { broadcastQueryClient({ queryClient, broadcastChannel: 'test_channel', @@ -20,7 +20,7 @@ describe('broadcastQueryClient', () => { expect(queryCache.hasListeners()).toBe(true) }) - it('should not have any listeners after cleanup', async () => { + it('should not have any listeners after cleanup', () => { const unsubscribe = broadcastQueryClient({ queryClient, broadcastChannel: 'test_channel', diff --git a/packages/query-codemods/eslint.config.js b/packages/query-codemods/eslint.config.js index 19a16c3c1e8..c3c009f41e8 100644 --- a/packages/query-codemods/eslint.config.js +++ b/packages/query-codemods/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' export default [ diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 6b8b70ace9f..6d20eb2430b 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -31,7 +31,7 @@ describe('queryObserver', () => { vi.useRealTimers() }) - test('should trigger a fetch when subscribed', async () => { + test('should trigger a fetch when subscribed', () => { const key = queryKey() const queryFn = vi .fn<(...args: Array) => string>() diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index fd5e265b748..7e99666bebc 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -152,7 +152,7 @@ describe('useQuery', () => { ) expectTypeOf(testFuncStyle.data).toEqualTypeOf() - it('should return the correct states for a successful query', async () => { + it('should return the correct states for a successful query', () => { const state = useQuery({ queryKey: key, queryFn: () => Promise.resolve('test'), diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 3635b668bf7..02bd28d9297 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -608,7 +608,7 @@ describe('useQuery', () => { expect(states[1]).toMatchObject({ data: 'test' }) }) - it('should not fetch when refetchOnMount is false and data has been fetched already', async () => { + it('should not fetch when refetchOnMount is false and data has been fetched already', () => { const key = queryKey() const states: Array> = [] @@ -1106,7 +1106,7 @@ describe('useQuery', () => { }) }) - it('should not refetch disabled query when invalidated with invalidateQueries', async () => { + it('should not refetch disabled query when invalidated with invalidateQueries', () => { const key = queryKey() const states: Array> = [] let count = 0 From 4404f7618bfc45a5f947873266e86448d7a908da Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 8 May 2025 04:33:08 +0900 Subject: [PATCH 2/4] ci(*): add ESLint rule require-await Co-authored-by: MINSEONG KIM <65233075+minseong0324@users.noreply.github.com> --- packages/query-codemods/eslint.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/query-codemods/eslint.config.js b/packages/query-codemods/eslint.config.js index c3c009f41e8..aa13b1cd93e 100644 --- a/packages/query-codemods/eslint.config.js +++ b/packages/query-codemods/eslint.config.js @@ -8,6 +8,7 @@ export default [ rules: { 'cspell/spellchecker': 'off', '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/require-await': 'off', 'import/no-duplicates': 'off', 'import/no-unresolved': 'off', 'import/order': 'off', From 5bf1a8285ab1e1bc6d0ed7b28a978972ab918e7e Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 8 May 2025 04:37:46 +0900 Subject: [PATCH 3/4] refactor(eslint): simplify vitest rules configuration by removing redundant require-await rule --- eslint.config.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 080ab5e19e0..3b5cd36f26e 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -46,10 +46,7 @@ export default [ { files: ['**/*.spec.ts*', '**/*.test.ts*', '**/*.test-d.ts*'], plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - '@typescript-eslint/require-await': 'error', - }, + rules: vitest.configs.recommended.rules, settings: { vitest: { typecheck: true } }, }, ] From 982e2716c03ed479695199e8fba5b0cd65ba7564 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 8 May 2025 04:44:24 +0900 Subject: [PATCH 4/4] chore: udpate