import { FALLBACK, TEXT } from '@suspensive/test-utils' import { render, screen } from '@testing-library/react' import { Suspense } from 'react' import { PromiseCache } from './PromiseCache' import { PromiseCacheProvider } from './PromiseCacheProvider' import { promiseOptions } from './promiseOptions' import { SuspensePromise } from './SuspensePromise' import { useSuspensePromise } from './useSuspensePromise' const key = (id: number) => ['key', id] as const const options = promiseOptions({ promiseKey: key(1), promiseFn: () => Promise.resolve(TEXT) }) describe('promiseOptions', () => { let promiseCache: PromiseCache beforeEach(() => { promiseCache = new PromiseCache() }) it('should be used with SuspensePromise', async () => { render( {({ data }) => <>{data}} ) expect(await screen.findByText(TEXT)).toBeInTheDocument() }) it('should be used with useSuspensePromise', async () => { const SuspensePromiseComponent = () => { const resolvedData = useSuspensePromise(options) return <>{resolvedData.data} } render( ) expect(await screen.findByText(TEXT)).toBeInTheDocument() }) })