@@ -25,16 +25,16 @@ export function getConfig(): Config
25
25
26
26
export type RenderResult <
27
27
Q extends Queries = typeof queries ,
28
- Container extends Element | DocumentFragment = HTMLElement ,
29
- BaseElement extends Element | DocumentFragment = Container ,
28
+ Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
29
+ BaseElement extends RendererableContainer | HydrateableContainer = Container ,
30
30
> = {
31
31
container : Container
32
32
baseElement : BaseElement
33
33
debug : (
34
34
baseElement ?:
35
- | Element
36
- | DocumentFragment
37
- | Array < Element | DocumentFragment > ,
35
+ | RendererableContainer
36
+ | HydrateableContainer
37
+ | Array < RendererableContainer | HydrateableContainer > ,
38
38
maxLength ?: number ,
39
39
options ?: prettyFormat . OptionsReceived ,
40
40
) => void
@@ -43,10 +43,48 @@ export type RenderResult<
43
43
asFragment : ( ) => DocumentFragment
44
44
} & { [ P in keyof Q ] : BoundFunction < Q [ P ] > }
45
45
46
- export interface BaseRenderOptions <
46
+ /** @deprecated */
47
+ export type BaseRenderOptions <
47
48
Q extends Queries ,
48
49
Container extends RendererableContainer | HydrateableContainer ,
49
- BaseElement extends Element | DocumentFragment ,
50
+ BaseElement extends RendererableContainer | HydrateableContainer ,
51
+ > = RenderOptions < Q , Container , BaseElement >
52
+
53
+ type RendererableContainer = ReactDOMClient . Container
54
+ type HydrateableContainer = Parameters < typeof ReactDOMClient [ 'hydrateRoot' ] > [ 0 ]
55
+ /** @deprecated */
56
+ export interface ClientRenderOptions <
57
+ Q extends Queries ,
58
+ Container extends RendererableContainer ,
59
+ BaseElement extends RendererableContainer = Container ,
60
+ > extends BaseRenderOptions < Q , Container , BaseElement > {
61
+ /**
62
+ * If `hydrate` is set to `true`, then it will render with `ReactDOM.hydrate`. This may be useful if you are using server-side
63
+ * rendering and use ReactDOM.hydrate to mount your components.
64
+ *
65
+ * @see https://testing-library.com/docs/react-testing-library/api/#hydrate)
66
+ */
67
+ hydrate ?: false | undefined
68
+ }
69
+ /** @deprecated */
70
+ export interface HydrateOptions <
71
+ Q extends Queries ,
72
+ Container extends HydrateableContainer ,
73
+ BaseElement extends HydrateableContainer = Container ,
74
+ > extends BaseRenderOptions < Q , Container , BaseElement > {
75
+ /**
76
+ * If `hydrate` is set to `true`, then it will render with `ReactDOM.hydrate`. This may be useful if you are using server-side
77
+ * rendering and use ReactDOM.hydrate to mount your components.
78
+ *
79
+ * @see https://testing-library.com/docs/react-testing-library/api/#hydrate)
80
+ */
81
+ hydrate : true
82
+ }
83
+
84
+ export interface RenderOptions <
85
+ Q extends Queries = typeof queries ,
86
+ Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
87
+ BaseElement extends RendererableContainer | HydrateableContainer = Container ,
50
88
> {
51
89
/**
52
90
* 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,
@@ -93,64 +131,18 @@ export interface BaseRenderOptions<
93
131
wrapper ?: React . JSXElementConstructor < { children : React . ReactNode } >
94
132
}
95
133
96
- type RendererableContainer = ReactDOMClient . Container
97
- type HydrateableContainer = Parameters < typeof ReactDOMClient [ 'hydrateRoot' ] > [ 0 ]
98
- export interface ClientRenderOptions <
99
- Q extends Queries ,
100
- Container extends Element | DocumentFragment ,
101
- BaseElement extends Element | DocumentFragment = Container ,
102
- > extends BaseRenderOptions < Q , Container , BaseElement > {
103
- /**
104
- * If `hydrate` is set to `true`, then it will render with `ReactDOM.hydrate`. This may be useful if you are using server-side
105
- * rendering and use ReactDOM.hydrate to mount your components.
106
- *
107
- * @see https://testing-library.com/docs/react-testing-library/api/#hydrate)
108
- */
109
- hydrate ?: false | undefined
110
- }
111
-
112
- export interface HydrateOptions <
113
- Q extends Queries ,
114
- Container extends Element | DocumentFragment ,
115
- BaseElement extends Element | DocumentFragment = Container ,
116
- > extends BaseRenderOptions < Q , Container , BaseElement > {
117
- /**
118
- * If `hydrate` is set to `true`, then it will render with `ReactDOM.hydrate`. This may be useful if you are using server-side
119
- * rendering and use ReactDOM.hydrate to mount your components.
120
- *
121
- * @see https://testing-library.com/docs/react-testing-library/api/#hydrate)
122
- */
123
- hydrate : true
124
- }
125
-
126
- export type RenderOptions <
127
- Q extends Queries = typeof queries ,
128
- Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
129
- BaseElement extends Element | DocumentFragment = Container ,
130
- > =
131
- | ClientRenderOptions < Q , Container , BaseElement >
132
- | HydrateOptions < Q , Container , BaseElement >
133
-
134
134
type Omit < T , K extends keyof T > = Pick < T , Exclude < keyof T , K > >
135
135
136
136
/**
137
137
* Render into a container which is appended to document.body. It should be used with cleanup.
138
138
*/
139
139
export function render <
140
140
Q extends Queries = typeof queries ,
141
- Container extends RendererableContainer = HTMLElement ,
142
- BaseElement extends Element | DocumentFragment = Container ,
143
- > (
144
- ui : React . ReactNode ,
145
- options : ClientRenderOptions < Q , Container , BaseElement > ,
146
- ) : RenderResult < Q , Container , BaseElement >
147
- export function render <
148
- Q extends Queries = typeof queries ,
149
- Container extends HydrateableContainer = HTMLElement ,
150
- BaseElement extends Element | DocumentFragment = Container ,
141
+ Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
142
+ BaseElement extends RendererableContainer | HydrateableContainer = Container ,
151
143
> (
152
144
ui : React . ReactNode ,
153
- options : HydrateOptions < Q , Container , BaseElement > ,
145
+ options : RenderOptions < Q , Container , BaseElement > ,
154
146
) : RenderResult < Q , Container , BaseElement >
155
147
export function render (
156
148
ui : React . ReactNode ,
@@ -179,19 +171,15 @@ export interface RenderHookResult<Result, Props> {
179
171
unmount : ( ) => void
180
172
}
181
173
182
- export interface BaseRenderHookOptions <
174
+ /** @deprecated */
175
+ export type BaseRenderHookOptions <
183
176
Props ,
184
177
Q extends Queries ,
185
178
Container extends RendererableContainer | HydrateableContainer ,
186
179
BaseElement extends Element | DocumentFragment ,
187
- > extends BaseRenderOptions < Q , Container , BaseElement > {
188
- /**
189
- * The argument passed to the renderHook callback. Can be useful if you plan
190
- * to use the rerender utility to change the values passed to your hook.
191
- */
192
- initialProps ?: Props
193
- }
180
+ > = RenderHookOptions < Props , Q , Container , BaseElement >
194
181
182
+ /** @deprecated */
195
183
export interface ClientRenderHookOptions <
196
184
Props ,
197
185
Q extends Queries ,
@@ -207,6 +195,7 @@ export interface ClientRenderHookOptions<
207
195
hydrate ?: false | undefined
208
196
}
209
197
198
+ /** @deprecated */
210
199
export interface HydrateHookOptions <
211
200
Props ,
212
201
Q extends Queries ,
@@ -222,14 +211,18 @@ export interface HydrateHookOptions<
222
211
hydrate : true
223
212
}
224
213
225
- export type RenderHookOptions <
214
+ export interface RenderHookOptions <
226
215
Props ,
227
216
Q extends Queries = typeof queries ,
228
- Container extends Element | DocumentFragment = HTMLElement ,
229
- BaseElement extends Element | DocumentFragment = Container ,
230
- > =
231
- | ClientRenderHookOptions < Props , Q , Container , BaseElement >
232
- | HydrateHookOptions < Props , Q , Container , BaseElement >
217
+ Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
218
+ BaseElement extends RendererableContainer | HydrateableContainer = Container ,
219
+ > extends BaseRenderOptions < Q , Container , BaseElement > {
220
+ /**
221
+ * The argument passed to the renderHook callback. Can be useful if you plan
222
+ * to use the rerender utility to change the values passed to your hook.
223
+ */
224
+ initialProps ?: Props
225
+ }
233
226
234
227
/**
235
228
* Allows you to render a hook within a test React component without having to
@@ -239,21 +232,11 @@ export function renderHook<
239
232
Result ,
240
233
Props ,
241
234
Q extends Queries = typeof queries ,
242
- Container extends RendererableContainer = HTMLElement ,
243
- BaseElement extends Element | DocumentFragment = Container ,
244
- > (
245
- render : ( initialProps : Props ) => Result ,
246
- options ?: ClientRenderHookOptions < Props , Q , Container , BaseElement > ,
247
- ) : RenderHookResult < Result , Props >
248
- export function renderHook <
249
- Result ,
250
- Props ,
251
- Q extends Queries = typeof queries ,
252
- Container extends HydrateableContainer = HTMLElement ,
253
- BaseElement extends Element | DocumentFragment = Container ,
235
+ Container extends RendererableContainer | HydrateableContainer = HTMLElement ,
236
+ BaseElement extends RendererableContainer | HydrateableContainer = Container ,
254
237
> (
255
238
render : ( initialProps : Props ) => Result ,
256
- options ?: HydrateHookOptions < Props , Q , Container , BaseElement > ,
239
+ options ?: RenderHookOptions < Props , Q , Container , BaseElement > ,
257
240
) : RenderHookResult < Result , Props >
258
241
259
242
/**
0 commit comments