snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
autofix.ci / autofix (push) Failing after 4s
Release / Release (push) Has been skipped
GitHub Actions Security Analysis / Run zizmor (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-16 01:13:08 +05:00
commit 3a013ccdfe
3570 changed files with 490194 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
<script lang="ts">
import type { QueryClient } from '@tanstack/query-core'
import {
HydrationBoundary,
createQuery,
setQueryClientContext,
} from '../../src/index.js'
import type { DehydratedState } from '@tanstack/query-core'
type Props = {
queryClient: QueryClient
dehydratedState: DehydratedState
queryFn: () => Promise<string>
}
let { queryClient, dehydratedState, queryFn }: Props = $props()
setQueryClientContext(queryClient)
const query = createQuery(() => ({
queryKey: ['string'],
queryFn,
}))
</script>
<HydrationBoundary
state={dehydratedState}
options={undefined}
queryClient={undefined}
>
<div>data: {query.data ?? 'undefined'}</div>
</HydrationBoundary>

View File

@@ -0,0 +1,47 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { render } from '@testing-library/svelte'
import { QueryClient, dehydrate, noop } from '@tanstack/query-core'
import { sleep } from '@tanstack/query-test-utils'
import Base from './Base.svelte'
describe('HydrationBoundary', () => {
let queryClient: QueryClient
let stringifiedState: string
beforeEach(async () => {
vi.useFakeTimers()
queryClient = new QueryClient()
const dehydrateClient = new QueryClient()
void dehydrateClient
.query({
queryKey: ['string'],
queryFn: () => sleep(10).then(() => 'stringCached'),
})
.catch(noop)
await vi.advanceTimersByTimeAsync(10)
const dehydrated = dehydrate(dehydrateClient)
stringifiedState = JSON.stringify(dehydrated)
dehydrateClient.clear()
})
afterEach(() => {
queryClient.clear()
vi.useRealTimers()
})
it('should hydrate queries to the cache on context', async () => {
const dehydratedState = JSON.parse(stringifiedState)
const rendered = render(Base, {
props: {
queryClient,
dehydratedState,
queryFn: () => sleep(20).then(() => 'string'),
},
})
expect(rendered.getByText('data: stringCached')).toBeInTheDocument()
await vi.advanceTimersByTimeAsync(20)
expect(rendered.getByText('data: string')).toBeInTheDocument()
})
})