diff --git a/packages/svelte-query/tests/createQueries/CombineExample.svelte b/packages/svelte-query/tests/createQueries/CombineExample.svelte index 0d1ac9c531..a52cc70c42 100644 --- a/packages/svelte-query/tests/createQueries/CombineExample.svelte +++ b/packages/svelte-query/tests/createQueries/CombineExample.svelte @@ -11,10 +11,7 @@ { queries: ids.map((id) => ({ queryKey: [id], - queryFn: async () => { - await sleep(5) - return id - }, + queryFn: () => sleep(10).then(() => id), })), combine: (results) => { return { diff --git a/packages/svelte-query/tests/createQueries/createQueries.test.ts b/packages/svelte-query/tests/createQueries/createQueries.test.ts index 87cd7c24a2..5f1219aadd 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test.ts @@ -21,17 +21,11 @@ describe('createQueries', () => { queries: [ { queryKey: ['key-1'], - queryFn: async () => { - await sleep(5) - return 'Success 1' - }, + queryFn: () => sleep(10).then(() => 'Success 1'), }, { queryKey: ['key-2'], - queryFn: async () => { - await sleep(5) - return 'Success 2' - }, + queryFn: () => sleep(10).then(() => 'Success 2'), }, ], }, @@ -39,15 +33,42 @@ describe('createQueries', () => { }, }) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Status 1: success')).toBeInTheDocument() expect(rendered.getByText('Status 2: success')).toBeInTheDocument() }) + test('Render and wait for success when queries resolve at different times', async () => { + const rendered = render(BaseExample, { + props: { + options: { + queries: [ + { + queryKey: ['key-1'], + queryFn: () => sleep(10).then(() => 'Success 1'), + }, + { + queryKey: ['key-2'], + queryFn: () => sleep(20).then(() => 'Success 2'), + }, + ], + }, + queryClient: new QueryClient(), + }, + }) + + expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() + expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status 1: success')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Status 2: success')).toBeInTheDocument() + }) + test('Combine queries', async () => { const rendered = render(CombineExample, { props: { @@ -55,10 +76,9 @@ describe('createQueries', () => { }, }) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isPending: true')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument() }) })