diff --git a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte
new file mode 100644
index 00000000000..679a1ff1a7c
--- /dev/null
+++ b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte
@@ -0,0 +1,29 @@
+
+
+
+
{query.status}
+
{query.fetchStatus}
+
{query.data ?? 'undefined'}
+
diff --git a/packages/svelte-query/tests/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts
similarity index 97%
rename from packages/svelte-query/tests/createQuery.svelte.test.ts
rename to packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts
index b0cf6916086..b20c5d76fa6 100644
--- a/packages/svelte-query/tests/createQuery.svelte.test.ts
+++ b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts
@@ -1,3 +1,4 @@
+import { render } from '@testing-library/svelte'
import { flushSync } from 'svelte'
import {
afterEach,
@@ -9,9 +10,10 @@ import {
vi,
} from 'vitest'
import { queryKey, sleep } from '@tanstack/query-test-utils'
-import { QueryClient, createQuery, keepPreviousData } from '../src/index.js'
-import { promiseWithResolvers, withEffectRoot } from './utils.svelte.js'
-import type { CreateQueryResult, QueryCache } from '../src/index.js'
+import { QueryClient, createQuery, keepPreviousData } from '../../src/index.js'
+import { promiseWithResolvers, withEffectRoot } from '../utils.svelte.js'
+import IsRestoringExample from './IsRestoringExample.svelte'
+import type { CreateQueryResult, QueryCache } from '../../src/index.js'
describe('createQuery', () => {
let queryClient: QueryClient
@@ -1917,4 +1919,26 @@ describe('createQuery', () => {
expect(queryClient2.getQueryCache().find({ queryKey: key })).toBeDefined()
}),
)
+
+ it('should not fetch for the duration of the restoring period when isRestoring is true', async () => {
+ const queryFn = vi.fn(() => sleep(10).then(() => 'data'))
+
+ const rendered = render(IsRestoringExample, {
+ props: { queryFn },
+ })
+
+ await vi.advanceTimersByTimeAsync(0)
+
+ expect(rendered.getByTestId('status')).toHaveTextContent('pending')
+ expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle')
+ expect(rendered.getByTestId('data')).toHaveTextContent('undefined')
+ expect(queryFn).toHaveBeenCalledTimes(0)
+
+ await vi.advanceTimersByTimeAsync(11)
+
+ expect(rendered.getByTestId('status')).toHaveTextContent('pending')
+ expect(rendered.getByTestId('fetchStatus')).toHaveTextContent('idle')
+ expect(rendered.getByTestId('data')).toHaveTextContent('undefined')
+ expect(queryFn).toHaveBeenCalledTimes(0)
+ })
})
diff --git a/packages/svelte-query/tests/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts
similarity index 98%
rename from packages/svelte-query/tests/createQuery.test-d.ts
rename to packages/svelte-query/tests/createQuery/createQuery.test-d.ts
index 55115db6665..8b6590b3347 100644
--- a/packages/svelte-query/tests/createQuery.test-d.ts
+++ b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts
@@ -1,6 +1,6 @@
import { describe, expectTypeOf, it } from 'vitest'
import { queryKey } from '@tanstack/query-test-utils'
-import { createQuery, queryOptions } from '../src/index.js'
+import { createQuery, queryOptions } from '../../src/index.js'
describe('createQuery', () => {
describe('initialData', () => {