Skip to content

Commit 6f8d57b

Browse files
authored
ci(*): update vitest/expect-expect rule as error (#9111)
1 parent 62faf10 commit 6f8d57b

19 files changed

+423
-257
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import rootConfig from './root.eslint.config.js'
54

6-
export default [
7-
...rootConfig,
8-
{
9-
plugins: { vitest },
10-
rules: {
11-
...vitest.configs.recommended.rules,
12-
'vitest/expect-expect': 'warn',
13-
},
14-
},
15-
]
5+
export default [...rootConfig]
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
// @ts-check
22

3-
import vitest from '@vitest/eslint-plugin'
43
import rootConfig from './root.eslint.config.js'
54

6-
export default [
7-
...rootConfig,
8-
{
9-
plugins: { vitest },
10-
rules: {
11-
...vitest.configs.recommended.rules,
12-
'vitest/expect-expect': 'warn',
13-
},
14-
},
15-
]
5+
export default [...rootConfig]

packages/solid-query/eslint.config.js

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

3-
import vitest from '@vitest/eslint-plugin'
43
import rootConfig from './root.eslint.config.js'
54

6-
export default [
7-
...rootConfig,
8-
{
9-
plugins: { vitest },
10-
rules: {
11-
...vitest.configs.recommended.rules,
12-
'vitest/expect-expect': 'warn',
13-
},
14-
},
15-
]
5+
export default [...rootConfig]

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

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
import { describe, expectTypeOf, it } from 'vitest'
1+
import { assertType, describe, expectTypeOf, it } from 'vitest'
22
import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core'
33
import { useQuery } from '../useQuery'
44
import { queryOptions } from '../queryOptions'
55

66
describe('queryOptions', () => {
77
it('should not allow excess properties', () => {
8-
queryOptions({
9-
queryKey: ['key'],
10-
queryFn: () => Promise.resolve(5),
11-
// @ts-expect-error this is a good error, because stallTime does not exist!
12-
stallTime: 1000,
13-
})
8+
assertType(
9+
queryOptions({
10+
queryKey: ['key'],
11+
queryFn: () => Promise.resolve(5),
12+
// @ts-expect-error this is a good error, because stallTime does not exist!
13+
stallTime: 1000,
14+
}),
15+
)
1416
})
1517
it('should infer types for callbacks', () => {
1618
queryOptions({

packages/solid-query/src/__tests__/suspense.test.tsx

+107-39
Original file line numberDiff line numberDiff line change
@@ -263,15 +263,21 @@ describe("useQuery's in Suspense mode", () => {
263263
</QueryClientProvider>
264264
))
265265

266-
await waitFor(() => rendered.getByText('Loading...'))
266+
await waitFor(() =>
267+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
268+
)
267269

268-
await waitFor(() => rendered.getByText('error boundary'))
270+
await waitFor(() =>
271+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
272+
)
269273

270-
await waitFor(() => rendered.getByText('retry'))
274+
await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument())
271275

272276
fireEvent.click(rendered.getByText('retry'))
273277

274-
await waitFor(() => rendered.getByText('rendered'))
278+
await waitFor(() =>
279+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
280+
)
275281
})
276282

277283
it('should retry fetch if the reset error boundary has been reset', async () => {
@@ -325,15 +331,23 @@ describe("useQuery's in Suspense mode", () => {
325331
</QueryClientProvider>
326332
))
327333

328-
await waitFor(() => rendered.getByText('Loading...'))
329-
await waitFor(() => rendered.getByText('error boundary'))
330-
await waitFor(() => rendered.getByText('retry'))
334+
await waitFor(() =>
335+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
336+
)
337+
await waitFor(() =>
338+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
339+
)
340+
await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument())
331341
fireEvent.click(rendered.getByText('retry'))
332-
await waitFor(() => rendered.getByText('error boundary'))
333-
await waitFor(() => rendered.getByText('retry'))
342+
await waitFor(() =>
343+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
344+
)
345+
await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument())
334346
succeed = true
335347
fireEvent.click(rendered.getByText('retry'))
336-
await waitFor(() => rendered.getByText('rendered'))
348+
await waitFor(() =>
349+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
350+
)
337351
})
338352

339353
it('should refetch when re-mounting', async () => {
@@ -383,16 +397,28 @@ describe("useQuery's in Suspense mode", () => {
383397
</QueryClientProvider>
384398
))
385399

386-
await waitFor(() => rendered.getByText('Loading...'))
387-
await waitFor(() => rendered.getByText('data: 1'))
388-
await waitFor(() => rendered.getByText('fetching: false'))
389-
await waitFor(() => rendered.getByText('hide'))
400+
await waitFor(() =>
401+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
402+
)
403+
await waitFor(() =>
404+
expect(rendered.getByText('data: 1')).toBeInTheDocument(),
405+
)
406+
await waitFor(() =>
407+
expect(rendered.getByText('fetching: false')).toBeInTheDocument(),
408+
)
409+
await waitFor(() => expect(rendered.getByText('hide')).toBeInTheDocument())
390410
fireEvent.click(rendered.getByText('hide'))
391-
await waitFor(() => rendered.getByText('show'))
411+
await waitFor(() => expect(rendered.getByText('show')).toBeInTheDocument())
392412
fireEvent.click(rendered.getByText('show'))
393-
await waitFor(() => rendered.getByText('fetching: true'))
394-
await waitFor(() => rendered.getByText('data: 2'))
395-
await waitFor(() => rendered.getByText('fetching: false'))
413+
await waitFor(() =>
414+
expect(rendered.getByText('fetching: true')).toBeInTheDocument(),
415+
)
416+
await waitFor(() =>
417+
expect(rendered.getByText('data: 2')).toBeInTheDocument(),
418+
)
419+
await waitFor(() =>
420+
expect(rendered.getByText('fetching: false')).toBeInTheDocument(),
421+
)
396422
})
397423

398424
it('should suspend when switching to a new query', async () => {
@@ -436,11 +462,19 @@ describe("useQuery's in Suspense mode", () => {
436462
</QueryClientProvider>
437463
))
438464

439-
await waitFor(() => rendered.getByText('Loading...'))
440-
await waitFor(() => rendered.getByText(`data: ${key1}`))
465+
await waitFor(() =>
466+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
467+
)
468+
await waitFor(() =>
469+
expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(),
470+
)
441471
fireEvent.click(rendered.getByText('switch'))
442-
await waitFor(() => rendered.getByText('Loading...'))
443-
await waitFor(() => rendered.getByText(`data: ${key2}`))
472+
await waitFor(() =>
473+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
474+
)
475+
await waitFor(() =>
476+
expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(),
477+
)
444478
})
445479

446480
it('should throw errors to the error boundary by default', async () => {
@@ -491,8 +525,12 @@ describe("useQuery's in Suspense mode", () => {
491525
</QueryClientProvider>
492526
))
493527

494-
await waitFor(() => rendered.getByText('Loading...'))
495-
await waitFor(() => rendered.getByText('error boundary'))
528+
await waitFor(() =>
529+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
530+
)
531+
await waitFor(() =>
532+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
533+
)
496534

497535
consoleMock.mockRestore()
498536
})
@@ -541,8 +579,12 @@ describe("useQuery's in Suspense mode", () => {
541579
</QueryClientProvider>
542580
))
543581

544-
await waitFor(() => rendered.getByText('Loading...'))
545-
await waitFor(() => rendered.getByText('rendered'))
582+
await waitFor(() =>
583+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
584+
)
585+
await waitFor(() =>
586+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
587+
)
546588
})
547589

548590
it('should throw errors to the error boundary when a throwOnError function returns true', async () => {
@@ -593,8 +635,12 @@ describe("useQuery's in Suspense mode", () => {
593635
</QueryClientProvider>
594636
))
595637

596-
await waitFor(() => rendered.getByText('Loading...'))
597-
await waitFor(() => rendered.getByText('error boundary'))
638+
await waitFor(() =>
639+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
640+
)
641+
await waitFor(() =>
642+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
643+
)
598644

599645
consoleMock.mockRestore()
600646
})
@@ -645,8 +691,12 @@ describe("useQuery's in Suspense mode", () => {
645691
</QueryClientProvider>
646692
))
647693

648-
await waitFor(() => rendered.getByText('Loading...'))
649-
await waitFor(() => rendered.getByText('rendered'))
694+
await waitFor(() =>
695+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
696+
)
697+
await waitFor(() =>
698+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
699+
)
650700
})
651701

652702
it('should not call the queryFn when not enabled', async () => {
@@ -751,16 +801,22 @@ describe("useQuery's in Suspense mode", () => {
751801
))
752802

753803
// render suspense fallback (Loading...)
754-
await waitFor(() => rendered.getByText('Loading...'))
804+
await waitFor(() =>
805+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
806+
)
755807
// resolve promise -> render Page (rendered)
756-
await waitFor(() => rendered.getByText('rendered'))
808+
await waitFor(() =>
809+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
810+
)
757811

758812
// change query key
759813
succeed = false
760814
// reset query -> and throw error
761815
fireEvent.click(rendered.getByLabelText('fail'))
762816
// render error boundary fallback (error boundary)
763-
await waitFor(() => rendered.getByText('error boundary'))
817+
await waitFor(() =>
818+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
819+
)
764820

765821
consoleMock.mockRestore()
766822
})
@@ -815,16 +871,22 @@ describe("useQuery's in Suspense mode", () => {
815871
))
816872

817873
// render suspense fallback (Loading...)
818-
await waitFor(() => rendered.getByText('Loading...'))
874+
await waitFor(() =>
875+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
876+
)
819877
// resolve promise -> render Page (rendered)
820-
await waitFor(() => rendered.getByText('rendered'))
878+
await waitFor(() =>
879+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
880+
)
821881

822882
// change promise result to error
823883
succeed = false
824884
// change query key
825885
fireEvent.click(rendered.getByLabelText('fail'))
826886
// render error boundary fallback (error boundary)
827-
await waitFor(() => rendered.getByText('error boundary'))
887+
await waitFor(() =>
888+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
889+
)
828890

829891
consoleMock.mockRestore()
830892
})
@@ -881,16 +943,22 @@ describe("useQuery's in Suspense mode", () => {
881943
))
882944

883945
// render empty data with 'rendered' when enabled is false
884-
await waitFor(() => rendered.getByText('rendered'))
946+
await waitFor(() =>
947+
expect(rendered.getByText('rendered')).toBeInTheDocument(),
948+
)
885949

886950
// change enabled to true
887951
fireEvent.click(rendered.getByLabelText('fail'))
888952

889953
// render pending fallback
890-
await waitFor(() => rendered.getByText('Loading...'))
954+
await waitFor(() =>
955+
expect(rendered.getByText('Loading...')).toBeInTheDocument(),
956+
)
891957

892958
// render error boundary fallback (error boundary)
893-
await waitFor(() => rendered.getByText('error boundary'))
959+
await waitFor(() =>
960+
expect(rendered.getByText('error boundary')).toBeInTheDocument(),
961+
)
894962

895963
consoleMock.mockRestore()
896964
})

packages/solid-query/src/__tests__/transition.test.tsx

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, it } from 'vitest'
1+
import { describe, expect, it } from 'vitest'
22
import { fireEvent, render, waitFor } from '@solidjs/testing-library'
33
import { Show, Suspense, createSignal, startTransition } from 'solid-js'
44
import { QueryCache, QueryClientProvider, useQuery } from '..'
@@ -50,11 +50,13 @@ describe("useQuery's in Suspense mode with transitions", () => {
5050
</QueryClientProvider>
5151
))
5252

53-
await waitFor(() => rendered.getByText('Show'))
53+
await waitFor(() => expect(rendered.getByText('Show')).toBeInTheDocument())
5454
fireEvent.click(rendered.getByLabelText('toggle'))
5555

56-
await waitFor(() => rendered.getByText('Message'))
56+
await waitFor(() =>
57+
expect(rendered.getByText('Message')).toBeInTheDocument(),
58+
)
5759
// verify that the button also updated. See https://github.com/solidjs/solid/issues/1249
58-
await waitFor(() => rendered.getByText('Hide'))
60+
await waitFor(() => expect(rendered.getByText('Hide')).toBeInTheDocument())
5961
})
6062
})

packages/solid-query/src/__tests__/useIsFetching.test.tsx

+18-6
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,16 @@ describe('useIsFetching', () => {
4646
</QueryClientProvider>
4747
))
4848

49-
await rendered.findByText('isFetching: 0')
49+
await waitFor(() =>
50+
expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(),
51+
)
5052
fireEvent.click(rendered.getByRole('button', { name: /setReady/i }))
51-
await rendered.findByText('isFetching: 1')
52-
await rendered.findByText('isFetching: 0')
53+
await waitFor(() =>
54+
expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(),
55+
)
56+
await waitFor(() =>
57+
expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(),
58+
)
5359
})
5460

5561
it('should not update state while rendering', async () => {
@@ -215,8 +221,12 @@ describe('useIsFetching', () => {
215221
</QueryClientProvider>
216222
))
217223

218-
await rendered.findByText('isFetching: 1')
219-
await rendered.findByText('isFetching: 0')
224+
await waitFor(() =>
225+
expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(),
226+
)
227+
await waitFor(() =>
228+
expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(),
229+
)
220230
})
221231

222232
it('should use provided custom queryClient', async () => {
@@ -246,6 +256,8 @@ describe('useIsFetching', () => {
246256

247257
const rendered = render(() => <Page></Page>)
248258

249-
await rendered.findByText('isFetching: 1')
259+
await waitFor(() =>
260+
expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(),
261+
)
250262
})
251263
})

0 commit comments

Comments
 (0)