Skip to content

Commit 62faf10

Browse files
authored
ci(react-query): update vitest/expect-expect rule as error (#9110)
1 parent 06ac87e commit 62faf10

21 files changed

+876
-461
lines changed

packages/react-query-devtools/eslint.config.js

-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import pluginReact from '@eslint-react/eslint-plugin'
54
import pluginReactHooks from 'eslint-plugin-react-hooks'
65
import rootConfig from './root.eslint.config.js'
@@ -20,11 +19,4 @@ export default [
2019
'react-hooks/rules-of-hooks': 'error',
2120
},
2221
},
23-
{
24-
plugins: { vitest },
25-
rules: {
26-
...vitest.configs.recommended.rules,
27-
'vitest/expect-expect': 'warn',
28-
},
29-
},
3022
]

packages/react-query-next-experimental/eslint.config.js

-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import pluginReact from '@eslint-react/eslint-plugin'
54
import pluginReactHooks from 'eslint-plugin-react-hooks'
65
import rootConfig from './root.eslint.config.js'
@@ -21,11 +20,4 @@ export default [
2120
'react-hooks/rules-of-hooks': 'error',
2221
},
2322
},
24-
{
25-
plugins: { vitest },
26-
rules: {
27-
...vitest.configs.recommended.rules,
28-
'vitest/expect-expect': 'warn',
29-
},
30-
},
3123
]

packages/react-query-persist-client/eslint.config.js

-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import pluginReact from '@eslint-react/eslint-plugin'
54
import pluginReactHooks from 'eslint-plugin-react-hooks'
65
import rootConfig from './root.eslint.config.js'
@@ -20,11 +19,4 @@ export default [
2019
'react-hooks/rules-of-hooks': 'error',
2120
},
2221
},
23-
{
24-
plugins: { vitest },
25-
rules: {
26-
...vitest.configs.recommended.rules,
27-
'vitest/expect-expect': 'warn',
28-
},
29-
},
3022
]

packages/react-query/eslint.config.js

-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import pluginReact from '@eslint-react/eslint-plugin'
54
// @ts-expect-error
65
import pluginReactCompiler from 'eslint-plugin-react-compiler'
@@ -32,11 +31,4 @@ export default [
3231
'react-compiler/react-compiler': 'off',
3332
},
3433
},
35-
{
36-
plugins: { vitest },
37-
rules: {
38-
...vitest.configs.recommended.rules,
39-
'vitest/expect-expect': 'warn',
40-
},
41-
},
4234
]

packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx

+87-29
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,17 @@ describe('QueryErrorResetBoundary', () => {
6868
</QueryErrorResetBoundary>,
6969
)
7070

71-
await waitFor(() => rendered.getByText('error boundary'))
72-
await waitFor(() => rendered.getByText('retry'))
71+
await waitFor(() =>
72+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
73+
)
74+
await waitFor(() =>
75+
expect(rendered.getByText('retry')).toBeInTheDocument(),
76+
)
7377
succeed = true
7478
fireEvent.click(rendered.getByText('retry'))
75-
await waitFor(() => rendered.getByText('data'))
79+
await waitFor(() =>
80+
expect(rendered.getByText('data')).toBeInTheDocument(),
81+
)
7682
consoleMock.mockRestore()
7783
})
7884

@@ -132,11 +138,17 @@ describe('QueryErrorResetBoundary', () => {
132138
</QueryErrorResetBoundary>,
133139
)
134140

135-
await waitFor(() => rendered.getByText('error boundary'))
136-
await waitFor(() => rendered.getByText('retry'))
141+
await waitFor(() =>
142+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
143+
)
144+
await waitFor(() =>
145+
expect(rendered.getByText('retry')).toBeInTheDocument(),
146+
)
137147
succeed = true
138148
fireEvent.click(rendered.getByText('retry'))
139-
await waitFor(() => rendered.getByText('status: error'))
149+
await waitFor(() =>
150+
expect(rendered.getByText('status: error')).toBeInTheDocument(),
151+
)
140152
consoleMock.mockRestore()
141153
})
142154

@@ -198,11 +210,17 @@ describe('QueryErrorResetBoundary', () => {
198210
</QueryErrorResetBoundary>,
199211
)
200212

201-
await waitFor(() => rendered.getByText('error boundary'))
202-
await waitFor(() => rendered.getByText('retry'))
213+
await waitFor(() =>
214+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
215+
)
216+
await waitFor(() =>
217+
expect(rendered.getByText('retry')).toBeInTheDocument(),
218+
)
203219
succeed = true
204220
fireEvent.click(rendered.getByText('retry'))
205-
await waitFor(() => rendered.getByText('data'))
221+
await waitFor(() =>
222+
expect(rendered.getByText('data')).toBeInTheDocument(),
223+
)
206224
consoleMock.mockRestore()
207225
})
208226

@@ -259,10 +277,14 @@ describe('QueryErrorResetBoundary', () => {
259277
)
260278

261279
await waitFor(() =>
262-
rendered.getByText('status: pending, fetchStatus: idle'),
280+
expect(
281+
rendered.getByText('status: pending, fetchStatus: idle'),
282+
).toBeInTheDocument(),
263283
)
264284
fireEvent.click(rendered.getByRole('button', { name: /refetch/i }))
265-
await waitFor(() => rendered.getByText('error boundary'))
285+
await waitFor(() =>
286+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
287+
)
266288
consoleMock.mockRestore()
267289
})
268290

@@ -316,11 +338,17 @@ describe('QueryErrorResetBoundary', () => {
316338
</QueryErrorResetBoundary>,
317339
)
318340

319-
await waitFor(() => rendered.getByText('error boundary'))
320-
await waitFor(() => rendered.getByText('retry'))
341+
await waitFor(() =>
342+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
343+
)
344+
await waitFor(() =>
345+
expect(rendered.getByText('retry')).toBeInTheDocument(),
346+
)
321347
succeed = true
322348
fireEvent.click(rendered.getByText('retry'))
323-
await waitFor(() => rendered.getByText('error boundary'))
349+
await waitFor(() =>
350+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
351+
)
324352
consoleMock.mockRestore()
325353
})
326354

@@ -376,11 +404,17 @@ describe('QueryErrorResetBoundary', () => {
376404
</QueryErrorResetBoundary>,
377405
)
378406

379-
await waitFor(() => rendered.getByText('error boundary'))
380-
await waitFor(() => rendered.getByText('retry'))
407+
await waitFor(() =>
408+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
409+
)
410+
await waitFor(() =>
411+
expect(rendered.getByText('retry')).toBeInTheDocument(),
412+
)
381413
succeed = true
382414
fireEvent.click(rendered.getByText('retry'))
383-
await waitFor(() => rendered.getByText('data'))
415+
await waitFor(() =>
416+
expect(rendered.getByText('data')).toBeInTheDocument(),
417+
)
384418
consoleMock.mockRestore()
385419
})
386420

@@ -440,11 +474,17 @@ describe('QueryErrorResetBoundary', () => {
440474
</QueryErrorResetBoundary>,
441475
)
442476

443-
await waitFor(() => rendered.getByText('error boundary'))
444-
await waitFor(() => rendered.getByText('retry'))
477+
await waitFor(() =>
478+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
479+
)
480+
await waitFor(() =>
481+
expect(rendered.getByText('retry')).toBeInTheDocument(),
482+
)
445483
shouldReset = true
446484
fireEvent.click(rendered.getByText('retry'))
447-
await waitFor(() => rendered.getByText('error boundary'))
485+
await waitFor(() =>
486+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
487+
)
448488
succeed = true
449489
shouldReset = false
450490
fireEvent.click(rendered.getByText('retry'))
@@ -651,11 +691,17 @@ describe('QueryErrorResetBoundary', () => {
651691
</QueryErrorResetBoundary>,
652692
)
653693

654-
await waitFor(() => rendered.getByText('error boundary'))
655-
await waitFor(() => rendered.getByText('retry'))
694+
await waitFor(() =>
695+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
696+
)
697+
await waitFor(() =>
698+
expect(rendered.getByText('retry')).toBeInTheDocument(),
699+
)
656700
succeed = true
657701
fireEvent.click(rendered.getByText('retry'))
658-
await waitFor(() => rendered.getByText('data'))
702+
await waitFor(() =>
703+
expect(rendered.getByText('data')).toBeInTheDocument(),
704+
)
659705
consoleMock.mockRestore()
660706
})
661707
})
@@ -715,11 +761,17 @@ describe('QueryErrorResetBoundary', () => {
715761
</QueryErrorResetBoundary>,
716762
)
717763

718-
await waitFor(() => rendered.getByText('error boundary'))
719-
await waitFor(() => rendered.getByText('retry'))
764+
await waitFor(() =>
765+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
766+
)
767+
await waitFor(() =>
768+
expect(rendered.getByText('retry')).toBeInTheDocument(),
769+
)
720770
succeed = true
721771
fireEvent.click(rendered.getByText('retry'))
722-
await waitFor(() => rendered.getByText('data'))
772+
await waitFor(() =>
773+
expect(rendered.getByText('data')).toBeInTheDocument(),
774+
)
723775
consoleMock.mockRestore()
724776
})
725777

@@ -779,11 +831,17 @@ describe('QueryErrorResetBoundary', () => {
779831
</QueryErrorResetBoundary>,
780832
)
781833

782-
await waitFor(() => rendered.getByText('error boundary'))
783-
await waitFor(() => rendered.getByText('retry'))
834+
await waitFor(() =>
835+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
836+
)
837+
await waitFor(() =>
838+
expect(rendered.getByText('retry')).toBeInTheDocument(),
839+
)
784840
succeed = true
785841
fireEvent.click(rendered.getByText('retry'))
786-
await waitFor(() => rendered.getByText('data'))
842+
await waitFor(() =>
843+
expect(rendered.getByText('data')).toBeInTheDocument(),
844+
)
787845
consoleMock.mockRestore()
788846
})
789847
})

packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx

+27-17
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expectTypeOf, it, test } from 'vitest'
1+
import { assertType, describe, expectTypeOf, it, test } from 'vitest'
22
import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core'
33
import { infiniteQueryOptions } from '../infiniteQueryOptions'
44
import { useInfiniteQuery } from '../useInfiniteQuery'
@@ -12,14 +12,16 @@ import type {
1212

1313
describe('infiniteQueryOptions', () => {
1414
it('should not allow excess properties', () => {
15-
infiniteQueryOptions({
16-
queryKey: ['key'],
17-
queryFn: () => Promise.resolve('data'),
18-
getNextPageParam: () => 1,
19-
initialPageParam: 1,
20-
// @ts-expect-error this is a good error, because stallTime does not exist!
21-
stallTime: 1000,
22-
})
15+
assertType(
16+
infiniteQueryOptions({
17+
queryKey: ['key'],
18+
queryFn: () => Promise.resolve('data'),
19+
getNextPageParam: () => 1,
20+
initialPageParam: 1,
21+
// @ts-expect-error this is a good error, because stallTime does not exist!
22+
stallTime: 1000,
23+
}),
24+
)
2325
})
2426
it('should infer types for callbacks', () => {
2527
infiniteQueryOptions({
@@ -159,14 +161,22 @@ describe('infiniteQueryOptions', () => {
159161
getNextPageParam: () => 1,
160162
initialPageParam: 1,
161163
})
162-
// @ts-expect-error cannot pass infinite options to non-infinite query functions
163-
useQuery(options)
164-
// @ts-expect-error cannot pass infinite options to non-infinite query functions
165-
queryClient.ensureQueryData(options)
166-
// @ts-expect-error cannot pass infinite options to non-infinite query functions
167-
queryClient.fetchQuery(options)
168-
// @ts-expect-error cannot pass infinite options to non-infinite query functions
169-
queryClient.prefetchQuery(options)
164+
assertType(
165+
// @ts-expect-error cannot pass infinite options to non-infinite query functions
166+
useQuery(options),
167+
)
168+
assertType(
169+
// @ts-expect-error cannot pass infinite options to non-infinite query functions
170+
queryClient.ensureQueryData(options),
171+
)
172+
assertType(
173+
// @ts-expect-error cannot pass infinite options to non-infinite query functions
174+
queryClient.fetchQuery(options),
175+
)
176+
assertType(
177+
// @ts-expect-error cannot pass infinite options to non-infinite query functions
178+
queryClient.prefetchQuery(options),
179+
)
170180
})
171181

172182
test('allow optional initialData function', () => {

packages/react-query/src/__tests__/queryOptions.test-d.tsx

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expectTypeOf, it } from 'vitest'
1+
import { assertType, describe, expectTypeOf, it } from 'vitest'
22
import {
33
QueriesObserver,
44
QueryClient,
@@ -18,12 +18,14 @@ import type {
1818

1919
describe('queryOptions', () => {
2020
it('should not allow excess properties', () => {
21-
queryOptions({
22-
queryKey: ['key'],
23-
queryFn: () => Promise.resolve(5),
24-
// @ts-expect-error this is a good error, because stallTime does not exist!
25-
stallTime: 1000,
26-
})
21+
assertType(
22+
queryOptions({
23+
queryKey: ['key'],
24+
queryFn: () => Promise.resolve(5),
25+
// @ts-expect-error this is a good error, because stallTime does not exist!
26+
stallTime: 1000,
27+
}),
28+
)
2729
})
2830
it('should infer types for callbacks', () => {
2931
queryOptions({
@@ -203,7 +205,7 @@ describe('queryOptions', () => {
203205
})
204206

205207
it('should allow undefined response in initialData', () => {
206-
return (id: string | null) =>
208+
assertType((id: string | null) =>
207209
queryOptions({
208210
queryKey: ['todo', id],
209211
queryFn: () =>
@@ -218,7 +220,8 @@ describe('queryOptions', () => {
218220
id,
219221
title: 'Initial Data',
220222
},
221-
})
223+
}),
224+
)
222225
})
223226

224227
it('should allow optional initialData object', () => {
@@ -248,7 +251,7 @@ describe('queryOptions', () => {
248251
queryFn: () => Promise.resolve(1),
249252
})
250253

251-
somethingWithQueryOptions(options)
254+
assertType(somethingWithQueryOptions(options))
252255
})
253256

254257
it('should return a custom query key type', () => {

0 commit comments

Comments
 (0)