diff --git a/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte b/packages/svelte-query/tests/createQuery/IsRestoringExample.svelte new file mode 100644 index 0000000000..679a1ff1a7 --- /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/createQuery.svelte.test.ts b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts new file mode 100644 index 0000000000..540cf29404 --- /dev/null +++ b/packages/svelte-query/tests/createQuery/createQuery.svelte.test.ts @@ -0,0 +1,36 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@testing-library/svelte' +import { sleep } from '@tanstack/query-test-utils' +import IsRestoringExample from './IsRestoringExample.svelte' + +describe('createQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + + 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) + }) +})