Skip to content

Commit eb52177

Browse files
committed
test(svelte-query/useMutationState): simplify 'queryFn' and replace 'queryByText' with 'getByText'
1 parent 552fe4b commit eb52177

File tree

2 files changed

+39
-38
lines changed

2 files changed

+39
-38
lines changed

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>

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

Lines changed: 37 additions & 32 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,10 +13,12 @@ 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: {
@@ -31,24 +34,24 @@ describe('useMutationState', () => {
3134
},
3235
})
3336

34-
fireEvent.click(rendered.getByTestId('success'))
35-
await vi.advanceTimersByTimeAsync(0)
37+
fireEvent.click(rendered.getByText('success'))
38+
await vi.advanceTimersByTimeAsync(11)
3639
expect(successMutationFn).toHaveBeenCalledTimes(1)
37-
expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]')
40+
expect(rendered.getByText('["success"]')).toBeInTheDocument()
3841

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

4748
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-
})
49+
const successMutationFn = vi.fn(() => sleep(10).then(() => 'data'))
50+
const errorMutationFn = vi
51+
.fn()
52+
.mockImplementation(() =>
53+
sleep(20).then(() => Promise.reject(new Error('error'))),
54+
)
5255

5356
const rendered = render(BaseExample, {
5457
props: {
@@ -68,22 +71,24 @@ describe('useMutationState', () => {
6871
},
6972
})
7073

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

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

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

8893
const rendered = render(BaseExample, {
8994
props: {
@@ -103,14 +108,14 @@ describe('useMutationState', () => {
103108
},
104109
})
105110

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

111-
fireEvent.click(rendered.getByTestId('error'))
112-
await vi.advanceTimersByTimeAsync(0)
116+
fireEvent.click(rendered.getByText('error'))
117+
await vi.advanceTimersByTimeAsync(21)
113118
expect(errorMutationFn).toHaveBeenCalledTimes(1)
114-
expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]')
119+
expect(rendered.getByText('["success"]')).toBeInTheDocument()
115120
})
116121
})

0 commit comments

Comments
 (0)