Skip to content

Commit e9d9080

Browse files
authored
test(svelte-query/createQueries): simplify 'queryFn' and add test for success when queries reslove at different times (#9494)
* test(svelte-query/createQueries): simplify 'queryFn' and use precise time in 'advanceTimersByTimeAsync' * test(svelte-query/createQueries): add test for success when queries reslove at different times
1 parent 3cc59be commit e9d9080

File tree

2 files changed

+33
-16
lines changed

2 files changed

+33
-16
lines changed

packages/svelte-query/tests/createQueries/CombineExample.svelte

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@
1111
{
1212
queries: ids.map((id) => ({
1313
queryKey: [id],
14-
queryFn: async () => {
15-
await sleep(5)
16-
return id
17-
},
14+
queryFn: () => sleep(10).then(() => id),
1815
})),
1916
combine: (results) => {
2017
return {

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

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,64 @@ describe('createQueries', () => {
2121
queries: [
2222
{
2323
queryKey: ['key-1'],
24-
queryFn: async () => {
25-
await sleep(5)
26-
return 'Success 1'
27-
},
24+
queryFn: () => sleep(10).then(() => 'Success 1'),
2825
},
2926
{
3027
queryKey: ['key-2'],
31-
queryFn: async () => {
32-
await sleep(5)
33-
return 'Success 2'
34-
},
28+
queryFn: () => sleep(10).then(() => 'Success 2'),
3529
},
3630
],
3731
},
3832
queryClient: new QueryClient(),
3933
},
4034
})
4135

42-
await vi.advanceTimersByTimeAsync(0)
4336
expect(rendered.getByText('Status 1: pending')).toBeInTheDocument()
4437
expect(rendered.getByText('Status 2: pending')).toBeInTheDocument()
4538

46-
await vi.advanceTimersByTimeAsync(6)
39+
await vi.advanceTimersByTimeAsync(11)
4740
expect(rendered.getByText('Status 1: success')).toBeInTheDocument()
4841
expect(rendered.getByText('Status 2: success')).toBeInTheDocument()
4942
})
5043

44+
test('Render and wait for success when queries resolve at different times', async () => {
45+
const rendered = render(BaseExample, {
46+
props: {
47+
options: {
48+
queries: [
49+
{
50+
queryKey: ['key-1'],
51+
queryFn: () => sleep(10).then(() => 'Success 1'),
52+
},
53+
{
54+
queryKey: ['key-2'],
55+
queryFn: () => sleep(20).then(() => 'Success 2'),
56+
},
57+
],
58+
},
59+
queryClient: new QueryClient(),
60+
},
61+
})
62+
63+
expect(rendered.getByText('Status 1: pending')).toBeInTheDocument()
64+
expect(rendered.getByText('Status 2: pending')).toBeInTheDocument()
65+
66+
await vi.advanceTimersByTimeAsync(11)
67+
expect(rendered.getByText('Status 1: success')).toBeInTheDocument()
68+
await vi.advanceTimersByTimeAsync(10)
69+
expect(rendered.getByText('Status 2: success')).toBeInTheDocument()
70+
})
71+
5172
test('Combine queries', async () => {
5273
const rendered = render(CombineExample, {
5374
props: {
5475
queryClient: new QueryClient(),
5576
},
5677
})
5778

58-
await vi.advanceTimersByTimeAsync(0)
5979
expect(rendered.getByText('isPending: true')).toBeInTheDocument()
6080

61-
await vi.advanceTimersByTimeAsync(6)
81+
await vi.advanceTimersByTimeAsync(11)
6282
expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument()
6383
})
6484
})

0 commit comments

Comments
 (0)