Skip to content

Commit 0f5f643

Browse files
test(svelte-query): add infinite query setQueryData test (#9714)
* test(svelte-query): add infiniteQuery setQueryData test * Remove state tracking * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent 593eacb commit 0f5f643

File tree

2 files changed

+62
-4
lines changed

2 files changed

+62
-4
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<script lang="ts">
2+
import { QueryClient } from '@tanstack/query-core'
3+
import { createInfiniteQuery } from '../../src/index.js'
4+
import { sleep } from '@tanstack/query-test-utils'
5+
6+
export let queryClient: QueryClient
7+
8+
const queryKey = ['test']
9+
10+
let firstPage = 0
11+
12+
const query = createInfiniteQuery(
13+
{
14+
queryKey: queryKey,
15+
queryFn: ({ pageParam }) => sleep(10).then(() => pageParam),
16+
getNextPageParam: (lastPage) => lastPage + 1,
17+
initialPageParam: firstPage,
18+
},
19+
queryClient,
20+
)
21+
</script>
22+
23+
<button
24+
on:click={() => {
25+
queryClient.setQueryData(queryKey, {
26+
pages: [7, 8],
27+
pageParams: [7, 8],
28+
})
29+
firstPage = 7
30+
}}
31+
>
32+
setPages
33+
</button>
34+
35+
<div>Data: {JSON.stringify($query.data)}</div>

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

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
2-
import { render } from '@testing-library/svelte'
1+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
2+
import { QueryClient } from '@tanstack/query-core'
3+
import { fireEvent, render } from '@testing-library/svelte'
34
import { get, writable } from 'svelte/store'
45
import BaseExample from './BaseExample.svelte'
56
import SelectExample from './SelectExample.svelte'
7+
import ChangeClient from './ChangeClient.svelte'
68
import type { Writable } from 'svelte/store'
79
import type { QueryObserverResult } from '@tanstack/query-core'
810

@@ -15,7 +17,7 @@ describe('createInfiniteQuery', () => {
1517
vi.useRealTimers()
1618
})
1719

18-
test('Return the correct states for a successful query', async () => {
20+
it('should return the correct states for a successful query', async () => {
1921
const statesStore: Writable<Array<QueryObserverResult>> = writable([])
2022

2123
const rendered = render(BaseExample, {
@@ -104,7 +106,7 @@ describe('createInfiniteQuery', () => {
104106
})
105107
})
106108

107-
test('Select a part of the data', async () => {
109+
it('should be able to select a part of the data', async () => {
108110
const statesStore: Writable<Array<QueryObserverResult>> = writable([])
109111

110112
const rendered = render(SelectExample, {
@@ -128,4 +130,25 @@ describe('createInfiniteQuery', () => {
128130
isSuccess: true,
129131
})
130132
})
133+
134+
it('should be able to set new pages with the query client', async () => {
135+
const queryClient = new QueryClient()
136+
137+
const rendered = render(ChangeClient, {
138+
props: {
139+
queryClient,
140+
},
141+
})
142+
143+
await vi.advanceTimersByTimeAsync(11)
144+
expect(
145+
rendered.getByText('Data: {"pages":[0],"pageParams":[0]}'),
146+
).toBeInTheDocument()
147+
148+
fireEvent.click(rendered.getByRole('button', { name: /setPages/i }))
149+
await vi.advanceTimersByTimeAsync(11)
150+
expect(
151+
rendered.getByText('Data: {"pages":[7,8],"pageParams":[7,8]}'),
152+
).toBeInTheDocument()
153+
})
131154
})

0 commit comments

Comments
 (0)