diff --git a/types/index.d.ts b/types/index.d.ts index 8e0d1c02..4d599256 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -6,12 +6,16 @@ import { BoundFunction, prettyFormat, } from '@testing-library/dom' +import {Renderer} from 'react-dom' import {act as reactAct} from 'react-dom/test-utils' export * from '@testing-library/dom' -export type RenderResult = { - container: Element +export type RenderResult< + Q extends Queries = typeof queries, + Container extends Element | DocumentFragment = HTMLElement +> = { + container: Container baseElement: Element debug: ( baseElement?: @@ -26,8 +30,11 @@ export type RenderResult = { asFragment: () => DocumentFragment } & {[P in keyof Q]: BoundFunction} -export interface RenderOptions { - container?: Element +export interface RenderOptions< + Q extends Queries = typeof queries, + Container extends Element | DocumentFragment = HTMLElement +> { + container?: Container baseElement?: Element hydrate?: boolean queries?: Q @@ -39,14 +46,17 @@ type Omit = Pick> /** * Render into a container which is appended to document.body. It should be used with cleanup. */ +export function render< + Q extends Queries, + Container extends Element | DocumentFragment = HTMLElement +>( + ui: React.ReactElement, + options: RenderOptions, +): RenderResult export function render( ui: React.ReactElement, options?: Omit, ): RenderResult -export function render( - ui: React.ReactElement, - options: RenderOptions, -): RenderResult /** * Unmounts React trees that were mounted with render. diff --git a/types/test.tsx b/types/test.tsx index 1366caac..7cc0e015 100644 --- a/types/test.tsx +++ b/types/test.tsx @@ -3,7 +3,7 @@ import {render, fireEvent, screen, waitFor} from '.' import * as pure from './pure' export async function testRender() { - const page = render(
) + const page = render(