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', () => {