import { type UseSuspenseQueryResult, queryOptions } from '@tanstack/react-query' import type { ReactNode } from 'react' import { describe, expectTypeOf, it } from 'vitest' import { SuspenseQuery } from './SuspenseQuery' import { queryFn, queryKey } from './test-utils' describe('', () => { it('type check', () => { ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => <>{query.data.text}} ))() ;(() => ( {(query) => { expectTypeOf(query).toEqualTypeOf>() expectTypeOf(query.data).toEqualTypeOf<{ text: string }>() expectTypeOf(query.status).toEqualTypeOf<'success' | 'error'>() return <> }} ))() ;(() => ( data.text}> {(selectedQuery) => { expectTypeOf(selectedQuery).toEqualTypeOf>() expectTypeOf(selectedQuery.data).toEqualTypeOf() expectTypeOf(selectedQuery.status).toEqualTypeOf<'error' | 'success'>() return <> }} ))() const options = queryOptions({ queryKey, queryFn, }) ;(() => ( {(query) => { expectTypeOf(query).toEqualTypeOf>() expectTypeOf(query.data).toEqualTypeOf<{ text: string }>() expectTypeOf(query.status).toEqualTypeOf<'error' | 'success'>() return <> }} ))() ;(() => ( data.text}> {(selectedQuery) => { expectTypeOf(selectedQuery).toEqualTypeOf>() expectTypeOf(selectedQuery.data).toEqualTypeOf() expectTypeOf(selectedQuery.status).toEqualTypeOf<'error' | 'success'>() return <> }} ))() expectTypeOf( {() => <>} ).toEqualTypeOf() expectTypeOf( {() => <>} ).not.toEqualTypeOf() expectTypeOf({() => <>}).toEqualTypeOf() expectTypeOf({() => <>}).not.toEqualTypeOf() }) })