@@ -14,9 +14,10 @@ export * from '@testing-library/dom'
1414export type RenderResult <
1515 Q extends Queries = typeof queries ,
1616 Container extends Element | DocumentFragment = HTMLElement ,
17+ BaseElement extends Element | DocumentFragment = Container ,
1718> = {
1819 container : Container
19- baseElement : Element
20+ baseElement : BaseElement
2021 debug : (
2122 baseElement ?:
2223 | Element
@@ -33,6 +34,7 @@ export type RenderResult<
3334export interface RenderOptions <
3435 Q extends Queries = typeof queries ,
3536 Container extends Element | DocumentFragment = HTMLElement ,
37+ BaseElement extends Element | DocumentFragment = Container ,
3638> {
3739 /**
3840 * By default, React Testing Library will create a div and append that div to the document.body. Your React component will be rendered in the created div. If you provide your own HTMLElement container via this option,
@@ -50,7 +52,7 @@ export interface RenderOptions<
5052 *
5153 * @see https://testing-library.com/docs/react-testing-library/api/#baseelement
5254 */
53- baseElement ?: Element
55+ baseElement ?: BaseElement
5456 /**
5557 * If `hydrate` is set to `true`, then it will render with `ReactDOM.hydrate`. This may be useful if you are using server-side
5658 * rendering and use ReactDOM.hydrate to mount your components.
@@ -75,7 +77,7 @@ export interface RenderOptions<
7577 *
7678 * @see https://testing-library.com/docs/react-testing-library/api/#wrapper
7779 */
78- wrapper ?: React . ComponentType
80+ wrapper ?: React . JSXElementConstructor < { children : React . ReactElement } >
7981}
8082
8183type Omit < T , K extends keyof T > = Pick < T , Exclude < keyof T , K > >
@@ -86,10 +88,11 @@ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>
8688export function render <
8789 Q extends Queries = typeof queries ,
8890 Container extends Element | DocumentFragment = HTMLElement ,
91+ BaseElement extends Element | DocumentFragment = Container ,
8992> (
9093 ui : React . ReactElement ,
91- options : RenderOptions < Q , Container > ,
92- ) : RenderResult < Q , Container >
94+ options : RenderOptions < Q , Container , BaseElement > ,
95+ ) : RenderResult < Q , Container , BaseElement >
9396export function render (
9497 ui : React . ReactElement ,
9598 options ?: Omit < RenderOptions , 'queries' > ,
0 commit comments