From fcf49d7aa683832435fda358fb6d1e1eeff0e3e0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 4 Apr 2026 15:59:56 +0900 Subject: [PATCH 1/3] test(svelte-query/createQueries): add test for not fetching when 'isRestoring' is true --- .../createQueries/IsRestoringExample.svelte | 36 ++++++++++++++ .../createQueries.svelte.test.ts | 47 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 packages/svelte-query/tests/createQueries/IsRestoringExample.svelte create mode 100644 packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts diff --git a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte new file mode 100644 index 00000000000..4f77db0c292 --- /dev/null +++ b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte @@ -0,0 +1,36 @@ + + +
+
{result[0].status}
+
{result[1].status}
+
{result[0].fetchStatus}
+
{result[1].fetchStatus}
+
{result[0].data ?? 'undefined'}
+
{result[1].data ?? 'undefined'}
+
diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts new file mode 100644 index 00000000000..2bca006a98b --- /dev/null +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -0,0 +1,47 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/svelte' +import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' +import IsRestoringExample from './IsRestoringExample.svelte' + +describe('createQueries (isRestoring)', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { + const queryClient = new QueryClient() + const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) + const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) + + const rendered = render(IsRestoringExample, { + props: { queryClient, queryFn1, queryFn2 }, + }) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + + await vi.advanceTimersByTimeAsync(11) + + expect(rendered.getByTestId('status1')).toHaveTextContent('pending') + expect(rendered.getByTestId('status2')).toHaveTextContent('pending') + expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle') + expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle') + expect(rendered.getByTestId('data1')).toHaveTextContent('undefined') + expect(rendered.getByTestId('data2')).toHaveTextContent('undefined') + expect(queryFn1).toHaveBeenCalledTimes(0) + expect(queryFn2).toHaveBeenCalledTimes(0) + }) +}) From 1bfc560ea5005c80f241c5c48a19d191bfe4c4a0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 4 Apr 2026 16:02:16 +0900 Subject: [PATCH 2/3] test(svelte-query/createQueries): remove '(isRestoring)' from describe block --- .../tests/createQueries/createQueries.svelte.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 2bca006a98b..0bfaaae091e 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -4,7 +4,7 @@ import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' import IsRestoringExample from './IsRestoringExample.svelte' -describe('createQueries (isRestoring)', () => { +describe('createQueries', () => { beforeEach(() => { vi.useFakeTimers() }) From 3bc0eb52f1019eee94dd04250846801e517cc0a2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 4 Apr 2026 16:22:59 +0900 Subject: [PATCH 3/3] test(svelte-query/createQueries): move 'queryClient' inside 'IsRestoringExample' component --- .../tests/createQueries/IsRestoringExample.svelte | 4 ++-- .../tests/createQueries/createQueries.svelte.test.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte index 4f77db0c292..320bee94fa8 100644 --- a/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte +++ b/packages/svelte-query/tests/createQueries/IsRestoringExample.svelte @@ -4,15 +4,15 @@ import { createQueries } from '../../src/index.js' let { - queryClient, queryFn1, queryFn2, }: { - queryClient: QueryClient queryFn1: () => Promise queryFn2: () => Promise } = $props() + const queryClient = new QueryClient() + setIsRestoringContext({ current: true }) const result = createQueries( diff --git a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts index 0bfaaae091e..dfff3892fb8 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.svelte.test.ts @@ -1,6 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@testing-library/svelte' -import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' import IsRestoringExample from './IsRestoringExample.svelte' @@ -14,12 +13,11 @@ describe('createQueries', () => { }) it('should not fetch for the duration of the restoring period when isRestoring is true', async () => { - const queryClient = new QueryClient() const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1')) const queryFn2 = vi.fn(() => sleep(10).then(() => 'data2')) const rendered = render(IsRestoringExample, { - props: { queryClient, queryFn1, queryFn2 }, + props: { queryFn1, queryFn2 }, }) await vi.advanceTimersByTimeAsync(0)