Files
upstream-tanstack-query/packages/svelte-query/tests/HydrationBoundary/HydrationBoundary.svelte.test.ts
upstream-mirror 3a013ccdfe
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
snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:13:08 +05:00

48 lines
1.4 KiB
TypeScript

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()
})
})