Skip to content

Commit 67b584f

Browse files
committed
test(svelte-query): wrap (useIs...) tests in QueryClientProvider to test non colocated query
1 parent eaf2baa commit 67b584f

File tree

12 files changed

+436
-198
lines changed

12 files changed

+436
-198
lines changed

packages/svelte-query/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"@tanstack/query-test-utils": "workspace:*",
5959
"@testing-library/svelte": "^5.2.6",
6060
"eslint-plugin-svelte": "^2.46.0",
61-
"svelte": "^5.26.1",
61+
"svelte": "^5.36.16",
6262
"svelte-check": "^4.1.5"
6363
},
6464
"peerDependencies": {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script lang="ts">
2+
import { QueryClient } from '@tanstack/query-core'
3+
import { QueryClientProvider } from '../src/index.js'
4+
import { Snippet } from 'svelte'
5+
6+
const {
7+
queryClient = new QueryClient(),
8+
children,
9+
}: { queryClient?: QueryClient; children: Snippet } = $props()
10+
</script>
11+
12+
<QueryClientProvider client={queryClient}>
13+
{@render children()}
14+
</QueryClientProvider>

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,12 @@ describe('createQuery', () => {
220220
await withEffectRoot(async () => {
221221
const { promise, resolve } = promiseWithResolvers<string>()
222222

223-
const query = $derived(
224-
createQuery<string, Error>(
225-
() => ({
226-
queryKey: key,
227-
queryFn: () => promise,
228-
}),
229-
() => queryClient,
230-
),
223+
const query = createQuery<string, Error>(
224+
() => ({
225+
queryKey: key,
226+
queryFn: () => promise,
227+
}),
228+
() => queryClient,
231229
)
232230

233231
expect(query).toEqual(
Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,11 @@
11
<script lang="ts">
2-
import { QueryClient } from '@tanstack/query-core'
3-
import { createQuery, useIsFetching } from '../../src/index.js'
4-
import { sleep } from '@tanstack/query-test-utils'
5-
6-
const queryClient = new QueryClient()
7-
let ready = $state(false)
8-
9-
const isFetching = useIsFetching(undefined, queryClient)
10-
11-
const query = createQuery(
12-
() => ({
13-
queryKey: ['test'],
14-
queryFn: async () => {
15-
await sleep(5)
16-
return 'test'
17-
},
18-
enabled: ready,
19-
}),
20-
() => queryClient,
21-
)
2+
import ProviderWrapper from '../ProviderWrapper.svelte'
3+
import FetchStatus from './FetchStatus.svelte'
4+
import Query from './Query.svelte'
225
</script>
236

24-
<button onclick={() => (ready = true)}>setReady</button>
7+
<ProviderWrapper>
8+
<FetchStatus />
259

26-
<div>isFetching: {isFetching.current}</div>
27-
<div>Data: {query.data ?? 'undefined'}</div>
10+
<Query />
11+
</ProviderWrapper>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<script lang="ts">
2+
import { useIsFetching } from '../../src/index.js'
3+
const isFetching = useIsFetching()
4+
</script>
5+
6+
<div>isFetching: {isFetching.current}</div>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<script lang="ts">
2+
import { createQuery } from '../../src/index.js'
3+
import { sleep } from '@tanstack/query-test-utils'
4+
5+
let ready = $state(false)
6+
7+
const query = createQuery(() => ({
8+
queryKey: ['test'],
9+
queryFn: async () => {
10+
await sleep(5)
11+
return 'test'
12+
},
13+
enabled: ready,
14+
}))
15+
</script>
16+
17+
<button onclick={() => (ready = true)}>setReady</button>
18+
19+
<div>Data: {query.data ?? 'undefined'}</div>
Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
11
<script lang="ts">
2-
import { QueryClient } from '@tanstack/query-core'
3-
import { createMutation, useIsMutating } from '../../src/index.js'
4-
import { sleep } from '@tanstack/query-test-utils'
5-
6-
const queryClient = new QueryClient()
7-
const isMutating = useIsMutating(undefined, queryClient)
8-
9-
const mutation = createMutation(
10-
() => ({
11-
mutationKey: ['mutation-1'],
12-
mutationFn: async () => {
13-
await sleep(5)
14-
return 'data'
15-
},
16-
}),
17-
() => queryClient,
18-
)
2+
import ProviderWrapper from '../ProviderWrapper.svelte'
3+
import MutatingStatus from './MutatingStatus.svelte'
4+
import Query from './Query.svelte'
195
</script>
206

21-
<button onclick={() => mutation.mutate()}>Trigger</button>
7+
<ProviderWrapper>
8+
<MutatingStatus />
229

23-
<div>isMutating: {isMutating.current}</div>
10+
<Query />
11+
</ProviderWrapper>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<script lang="ts">
2+
import { useIsMutating } from '../../src/index.js'
3+
const isMutating = useIsMutating()
4+
</script>
5+
6+
<div>isMutating: {isMutating.current}</div>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script lang="ts">
2+
import { createMutation } from '../../src/index.js'
3+
import { sleep } from '@tanstack/query-test-utils'
4+
5+
const mutation = createMutation(() => ({
6+
mutationKey: ['mutation-1'],
7+
mutationFn: async () => {
8+
await sleep(5)
9+
return 'data'
10+
},
11+
}))
12+
</script>
13+
14+
<button onclick={() => mutation.mutate()}>Trigger</button>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { describe, test } from 'vitest'
22
import { fireEvent, render } from '@testing-library/svelte'
33
import BaseExample from './BaseExample.svelte'
44

5-
describe('useIsFetching', () => {
5+
describe('useIsMutating', () => {
66
test('should update as queries start and stop fetching', async () => {
77
const rendered = render(BaseExample)
88

0 commit comments

Comments
 (0)