Skip to content

Commit d44382b

Browse files
authored
Merge branch 'main' into test/svelte-query-createInfiniteQuery-add-sleep-remove-Number-simplify-queryFn-replace-queryByText-getByText
2 parents cf11ff3 + 880d183 commit d44382b

File tree

3 files changed

+44
-50
lines changed

3 files changed

+44
-50
lines changed

examples/react/suspense/src/components/Project.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@ export default function Project({
2222
<h1>
2323
{activeProject} {isFetching ? <Spinner /> : null}
2424
</h1>
25-
{data ? (
26-
<div>
27-
<p>forks: {data.forks_count}</p>
28-
<p>stars: {data.stargazers_count}</p>
29-
<p>watchers: {data.watchers_count}</p>
30-
</div>
31-
) : null}
25+
<div>
26+
<p>forks: {data.forks_count}</p>
27+
<p>stars: {data.stargazers_count}</p>
28+
<p>watchers: {data.watchers_count}</p>
29+
</div>
3230
<br />
3331
<br />
3432
</div>

packages/svelte-query/tests/useMutationState/BaseExample.svelte

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,5 @@
2828
{JSON.stringify(statuses)}
2929
</div>
3030

31-
<button data-testid="success" on:click={() => $successMutation.mutate()}>
32-
Click
33-
</button>
34-
<button data-testid="error" on:click={() => $errorMutation.mutate()}>
35-
Click
36-
</button>
31+
<button on:click={() => $successMutation.mutate()}>success</button>
32+
<button on:click={() => $errorMutation.mutate()}>error</button>
Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
22
import { fireEvent, render } from '@testing-library/svelte'
3+
import { sleep } from '@tanstack/query-test-utils'
34
import BaseExample from './BaseExample.svelte'
45

56
describe('useMutationState', () => {
@@ -12,105 +13,104 @@ describe('useMutationState', () => {
1213
})
1314

1415
test('Run few mutation functions and check from useMutationState', async () => {
15-
const successMutationFn = vi.fn()
16-
const errorMutationFn = vi.fn().mockImplementation(() => {
17-
throw 'error'
18-
})
16+
const successMutationFn = vi.fn(() => sleep(10).then(() => 'data'))
17+
const errorMutationFn = vi
18+
.fn()
19+
.mockImplementation(() =>
20+
sleep(20).then(() => Promise.reject(new Error('error'))),
21+
)
1922

2023
const rendered = render(BaseExample, {
2124
props: {
2225
successMutationOpts: {
2326
mutationKey: ['success'],
2427
mutationFn: successMutationFn,
2528
},
26-
2729
errorMutationOpts: {
2830
mutationKey: ['error'],
2931
mutationFn: errorMutationFn,
3032
},
3133
},
3234
})
3335

34-
fireEvent.click(rendered.getByTestId('success'))
35-
await vi.advanceTimersByTimeAsync(0)
36+
fireEvent.click(rendered.getByText('success'))
37+
await vi.advanceTimersByTimeAsync(11)
3638
expect(successMutationFn).toHaveBeenCalledTimes(1)
37-
expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]')
39+
expect(rendered.getByText('["success"]')).toBeInTheDocument()
3840

39-
fireEvent.click(rendered.getByTestId('error'))
40-
await vi.advanceTimersByTimeAsync(0)
41+
fireEvent.click(rendered.getByText('error'))
42+
await vi.advanceTimersByTimeAsync(21)
4143
expect(errorMutationFn).toHaveBeenCalledTimes(1)
42-
expect(rendered.getByTestId('result').innerHTML).toEqual(
43-
'["success","error"]',
44-
)
44+
expect(rendered.getByText('["success","error"]')).toBeInTheDocument()
4545
})
4646

4747
test('Can select specific type of mutation ( i.e: error only )', async () => {
48-
const successMutationFn = vi.fn()
49-
const errorMutationFn = vi.fn().mockImplementation(() => {
50-
throw 'error'
51-
})
48+
const successMutationFn = vi.fn(() => sleep(10).then(() => 'data'))
49+
const errorMutationFn = vi
50+
.fn()
51+
.mockImplementation(() =>
52+
sleep(20).then(() => Promise.reject(new Error('error'))),
53+
)
5254

5355
const rendered = render(BaseExample, {
5456
props: {
5557
successMutationOpts: {
5658
mutationKey: ['success'],
5759
mutationFn: successMutationFn,
5860
},
59-
6061
errorMutationOpts: {
6162
mutationKey: ['error'],
6263
mutationFn: errorMutationFn,
6364
},
64-
6565
mutationStateOpts: {
6666
filters: { status: 'error' },
6767
},
6868
},
6969
})
7070

71-
fireEvent.click(rendered.getByTestId('success'))
72-
await vi.advanceTimersByTimeAsync(0)
71+
fireEvent.click(rendered.getByText('success'))
72+
await vi.advanceTimersByTimeAsync(11)
7373
expect(successMutationFn).toHaveBeenCalledTimes(1)
74-
expect(rendered.getByTestId('result').innerHTML).toEqual('[]')
74+
expect(rendered.getByText('[]')).toBeInTheDocument()
7575

76-
fireEvent.click(rendered.getByTestId('error'))
77-
await vi.advanceTimersByTimeAsync(0)
76+
fireEvent.click(rendered.getByText('error'))
77+
await vi.advanceTimersByTimeAsync(21)
7878
expect(errorMutationFn).toHaveBeenCalledTimes(1)
79-
expect(rendered.getByTestId('result').innerHTML).toEqual('["error"]')
79+
expect(rendered.getByText('["error"]')).toBeInTheDocument()
8080
})
8181

8282
test('Can select specific mutation using mutation key', async () => {
83-
const successMutationFn = vi.fn()
84-
const errorMutationFn = vi.fn().mockImplementation(() => {
85-
throw 'error'
86-
})
83+
const successMutationFn = vi.fn(() => sleep(10).then(() => 'data'))
84+
const errorMutationFn = vi
85+
.fn()
86+
.mockImplementation(() =>
87+
sleep(20).then(() => Promise.reject(new Error('error'))),
88+
)
8789

8890
const rendered = render(BaseExample, {
8991
props: {
9092
successMutationOpts: {
9193
mutationKey: ['success'],
9294
mutationFn: successMutationFn,
9395
},
94-
9596
errorMutationOpts: {
9697
mutationKey: ['error'],
9798
mutationFn: errorMutationFn,
9899
},
99-
100100
mutationStateOpts: {
101101
filters: { mutationKey: ['success'] },
102102
},
103103
},
104104
})
105105

106-
fireEvent.click(rendered.getByTestId('success'))
107-
await vi.advanceTimersByTimeAsync(0)
106+
fireEvent.click(rendered.getByText('success'))
107+
await vi.advanceTimersByTimeAsync(11)
108108
expect(successMutationFn).toHaveBeenCalledTimes(1)
109-
expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]')
109+
expect(rendered.getByText('["success"]')).toBeInTheDocument()
110110

111-
fireEvent.click(rendered.getByTestId('error'))
112-
await vi.advanceTimersByTimeAsync(0)
111+
fireEvent.click(rendered.getByText('error'))
112+
await vi.advanceTimersByTimeAsync(21)
113113
expect(errorMutationFn).toHaveBeenCalledTimes(1)
114-
expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]')
114+
expect(rendered.getByText('["success"]')).toBeInTheDocument()
115115
})
116116
})

0 commit comments

Comments
 (0)