Skip to content

Commit d6930fd

Browse files
sukvvonmanudeli
andauthored
test(svelte-query/createMutation): switch to fake timers, replace 'waitFor' with 'vi.waitFor', and add 'expect' (#9382)
Co-authored-by: Jonghyeon Ko <[email protected]>
1 parent ab7fd72 commit d6930fd

File tree

1 file changed

+48
-20
lines changed

1 file changed

+48
-20
lines changed

packages/svelte-query/tests/createMutation/createMutation.test.ts

Lines changed: 48 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,37 @@
1-
import { describe, expect, test, vi } from 'vitest'
2-
import { fireEvent, render, waitFor } from '@testing-library/svelte'
1+
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
2+
import { fireEvent, render } from '@testing-library/svelte'
33
import { sleep } from '@tanstack/query-test-utils'
44
import ResetExample from './ResetExample.svelte'
55
import OnSuccessExample from './OnSuccessExample.svelte'
66
import FailureExample from './FailureExample.svelte'
77

88
describe('createMutation', () => {
9+
beforeEach(() => {
10+
vi.useFakeTimers()
11+
})
12+
13+
afterEach(() => {
14+
vi.useRealTimers()
15+
})
16+
917
test('Able to reset `error`', async () => {
1018
const rendered = render(ResetExample)
1119

12-
await waitFor(() => {
20+
await vi.waitFor(() => {
1321
expect(rendered.queryByText('Error: undefined')).toBeInTheDocument()
1422
})
1523

1624
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
1725

18-
await waitFor(() => {
26+
await vi.waitFor(() => {
1927
expect(
2028
rendered.queryByText('Error: Expected mock error'),
2129
).toBeInTheDocument()
2230
})
2331

2432
fireEvent.click(rendered.getByRole('button', { name: /Reset/i }))
2533

26-
await waitFor(() => {
34+
await vi.waitFor(() => {
2735
expect(rendered.queryByText('Error: undefined')).toBeInTheDocument()
2836
})
2937
})
@@ -39,27 +47,27 @@ describe('createMutation', () => {
3947
},
4048
})
4149

42-
await waitFor(() => {
50+
await vi.waitFor(() => {
4351
expect(rendered.queryByText('Count: 0')).toBeInTheDocument()
4452
})
4553

4654
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
4755
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
4856
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
4957

50-
await waitFor(() => {
58+
await vi.waitFor(() => {
5159
expect(rendered.queryByText('Count: 3')).toBeInTheDocument()
5260
})
5361

54-
await waitFor(() => {
62+
await vi.waitFor(() => {
5563
expect(onSuccessMock).toHaveBeenCalledTimes(3)
5664
})
5765

5866
expect(onSuccessMock).toHaveBeenCalledWith(1)
5967
expect(onSuccessMock).toHaveBeenCalledWith(2)
6068
expect(onSuccessMock).toHaveBeenCalledWith(3)
6169

62-
await waitFor(() => {
70+
await vi.waitFor(() => {
6371
expect(onSettledMock).toHaveBeenCalledTimes(3)
6472
})
6573

@@ -88,21 +96,41 @@ describe('createMutation', () => {
8896
},
8997
})
9098

91-
await waitFor(() => rendered.queryByText('Data: undefined'))
99+
await vi.waitFor(() =>
100+
expect(rendered.queryByText('Data: undefined')).toBeInTheDocument(),
101+
)
92102

93103
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
94-
await waitFor(() => rendered.getByText('Data: undefined'))
95-
await waitFor(() => rendered.getByText('Status: error'))
96-
await waitFor(() => rendered.getByText('Failure Count: 1'))
97-
await waitFor(() =>
98-
rendered.getByText('Failure Reason: Expected mock error'),
104+
await vi.waitFor(() =>
105+
expect(rendered.getByText('Data: undefined')).toBeInTheDocument(),
106+
)
107+
await vi.waitFor(() =>
108+
expect(rendered.getByText('Status: error')).toBeInTheDocument(),
109+
)
110+
await vi.waitFor(() =>
111+
expect(rendered.getByText('Failure Count: 1')).toBeInTheDocument(),
112+
)
113+
await vi.waitFor(() =>
114+
expect(
115+
rendered.getByText('Failure Reason: Expected mock error'),
116+
).toBeInTheDocument(),
99117
)
100118

101119
fireEvent.click(rendered.getByRole('button', { name: /Mutate/i }))
102-
await waitFor(() => rendered.getByText('Status: pending'))
103-
await waitFor(() => rendered.getByText('Status: success'))
104-
await waitFor(() => rendered.getByText('Data: 2'))
105-
await waitFor(() => rendered.getByText('Failure Count: 0'))
106-
await waitFor(() => rendered.getByText('Failure Reason: null'))
120+
await vi.waitFor(() =>
121+
expect(rendered.getByText('Status: pending')).toBeInTheDocument(),
122+
)
123+
await vi.waitFor(() =>
124+
expect(rendered.getByText('Status: success')).toBeInTheDocument(),
125+
)
126+
await vi.waitFor(() =>
127+
expect(rendered.getByText('Data: 2')).toBeInTheDocument(),
128+
)
129+
await vi.waitFor(() =>
130+
expect(rendered.getByText('Failure Count: 0')).toBeInTheDocument(),
131+
)
132+
await vi.waitFor(() =>
133+
expect(rendered.getByText('Failure Reason: null')).toBeInTheDocument(),
134+
)
107135
})
108136
})

0 commit comments

Comments
 (0)