diff --git a/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte b/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte
new file mode 100644
index 0000000000..1912606ecd
--- /dev/null
+++ b/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte
@@ -0,0 +1,14 @@
+
+
+
{$query.data}
diff --git a/packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte b/packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte
new file mode 100644
index 0000000000..7129cf8a31
--- /dev/null
+++ b/packages/svelte-query/tests/QueryClientProvider/ParentComponent.svelte
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts
new file mode 100644
index 0000000000..86c9907cb7
--- /dev/null
+++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts
@@ -0,0 +1,20 @@
+import { describe, expect, test } from 'vitest'
+import { render, waitFor } from '@testing-library/svelte'
+import { QueryCache } from '@tanstack/query-core'
+import ParentComponent from './ParentComponent.svelte'
+
+describe('QueryClientProvider', () => {
+ test('Sets a specific cache for all queries to use', async () => {
+ const queryCache = new QueryCache()
+
+ const rendered = render(ParentComponent, {
+ props: {
+ queryCache: queryCache,
+ },
+ })
+
+ await waitFor(() => rendered.getByText('test'))
+
+ expect(queryCache.find({ queryKey: ['hello'] })).toBeDefined()
+ })
+})
diff --git a/packages/svelte-query/tests/context.test.ts b/packages/svelte-query/tests/context/context.test.ts
similarity index 54%
rename from packages/svelte-query/tests/context.test.ts
rename to packages/svelte-query/tests/context/context.test.ts
index 8ea9dabeb1..f3428917d1 100644
--- a/packages/svelte-query/tests/context.test.ts
+++ b/packages/svelte-query/tests/context/context.test.ts
@@ -1,8 +1,8 @@
import { describe, expect, it } from 'vitest'
-import { getIsRestoringContext } from '../src/context'
+import { getIsRestoringContext } from '../../src/context'
describe('getIsRestoringContext', () => {
- it('Should not throw when called outside of a component', async () => {
+ it('Should not throw when called outside of a component', () => {
expect(() => getIsRestoringContext()).to.not.throw()
})
})
diff --git a/packages/svelte-query/tests/CreateMutation.svelte b/packages/svelte-query/tests/createMutation/BaseExample.svelte
similarity index 62%
rename from packages/svelte-query/tests/CreateMutation.svelte
rename to packages/svelte-query/tests/createMutation/BaseExample.svelte
index 2c3074e3a7..e4bf80d4dd 100644
--- a/packages/svelte-query/tests/CreateMutation.svelte
+++ b/packages/svelte-query/tests/createMutation/BaseExample.svelte
@@ -1,8 +1,8 @@
+
+
+Data: {$query.data ?? 'undefined'}
+Count: {$count}
diff --git a/packages/svelte-query/tests/createQuery.test.ts b/packages/svelte-query/tests/createQuery/createQuery.test.ts
similarity index 83%
rename from packages/svelte-query/tests/createQuery.test.ts
rename to packages/svelte-query/tests/createQuery/createQuery.test.ts
index 482043b7fd..0449eb951c 100644
--- a/packages/svelte-query/tests/createQuery.test.ts
+++ b/packages/svelte-query/tests/createQuery/createQuery.test.ts
@@ -1,13 +1,14 @@
import { describe, expect, test } from 'vitest'
-import { render, waitFor } from '@testing-library/svelte'
+import { fireEvent, render, waitFor } from '@testing-library/svelte'
import { derived, writable } from 'svelte/store'
import { QueryClient } from '@tanstack/query-core'
-import CreateQuery from './CreateQuery.svelte'
-import { sleep } from './utils'
+import { sleep } from '../utils'
+import BaseExample from './BaseExample.svelte'
+import DisabledExample from './DisabledExample.svelte'
describe('createQuery', () => {
test('Render and wait for success', async () => {
- const rendered = render(CreateQuery, {
+ const rendered = render(BaseExample, {
props: {
options: {
queryKey: ['test'],
@@ -38,7 +39,7 @@ describe('createQuery', () => {
},
})
- const rendered = render(CreateQuery, {
+ const rendered = render(BaseExample, {
props: {
options: optionsStore,
queryClient: new QueryClient(),
@@ -61,7 +62,7 @@ describe('createQuery', () => {
},
}))
- const rendered = render(CreateQuery, {
+ const rendered = render(BaseExample, {
props: {
options: derivedStore,
queryClient: new QueryClient(),
@@ -84,7 +85,7 @@ describe('createQuery', () => {
},
}))
- const rendered = render(CreateQuery, {
+ const rendered = render(BaseExample, {
props: {
options: derivedStore,
queryClient: new QueryClient({
@@ -125,7 +126,7 @@ describe('createQuery', () => {
placeholderData: (previousData: string) => previousData,
}))
- const rendered = render(CreateQuery, {
+ const rendered = render(BaseExample, {
props: {
options: derivedStore,
queryClient: new QueryClient(),
@@ -154,4 +155,17 @@ describe('createQuery', () => {
expect(rendered.queryByText('Success 2')).toBeInTheDocument()
})
})
+
+ test('Should not fetch when switching to a disabled query', async () => {
+ const rendered = render(DisabledExample)
+
+ await waitFor(() => rendered.getByText('Data: 0'))
+
+ fireEvent.click(rendered.getByRole('button', { name: /Increment/i }))
+
+ await waitFor(() => {
+ rendered.getByText('Count: 1')
+ rendered.getByText('Data: undefined')
+ })
+ })
})
diff --git a/packages/svelte-query/tests/queryOptions.test.ts b/packages/svelte-query/tests/queryOptions/queryOptions.test.ts
similarity index 98%
rename from packages/svelte-query/tests/queryOptions.test.ts
rename to packages/svelte-query/tests/queryOptions/queryOptions.test.ts
index f73cc0c7d7..65c7e47679 100644
--- a/packages/svelte-query/tests/queryOptions.test.ts
+++ b/packages/svelte-query/tests/queryOptions/queryOptions.test.ts
@@ -1,6 +1,6 @@
import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core'
import { describe, expectTypeOf, it } from 'vitest'
-import { queryOptions } from '../src/queryOptions'
+import { queryOptions } from '../../src/queryOptions'
describe('queryOptions', () => {
it('should not allow excess properties', () => {
diff --git a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte
new file mode 100644
index 0000000000..f94b56dd2b
--- /dev/null
+++ b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte
@@ -0,0 +1,33 @@
+
+
+
+isFetching: {$isFetching}
+
+{#if $query.isSuccess}
+ {$query.data}
+{/if}
diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts
new file mode 100644
index 0000000000..7ca6ca6322
--- /dev/null
+++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts
@@ -0,0 +1,14 @@
+import { describe, test } from 'vitest'
+import { fireEvent, render } from '@testing-library/svelte'
+import BaseExample from './BaseExample.svelte'
+
+describe('useIsFetching', () => {
+ test('should update as queries start and stop fetching', async () => {
+ const rendered = render(BaseExample)
+
+ await rendered.findByText('isFetching: 0')
+ fireEvent.click(rendered.getByRole('button', { name: /setReady/i }))
+ await rendered.findByText('isFetching: 1')
+ await rendered.findByText('isFetching: 0')
+ })
+})
diff --git a/packages/svelte-query/tests/UseMutationState.svelte b/packages/svelte-query/tests/useMutationState/BaseExample.svelte
similarity index 81%
rename from packages/svelte-query/tests/UseMutationState.svelte
rename to packages/svelte-query/tests/useMutationState/BaseExample.svelte
index d980c8121e..543a9a5271 100644
--- a/packages/svelte-query/tests/UseMutationState.svelte
+++ b/packages/svelte-query/tests/useMutationState/BaseExample.svelte
@@ -1,12 +1,12 @@