@@ -15,7 +15,7 @@ import { getQueriesForElement } from './within';
15
15
16
16
export interface RenderOptions {
17
17
wrapper ?: React . ComponentType < any > ;
18
- createNodeMock ?: ( element : React . ReactElement ) => any ;
18
+ createNodeMock ?: ( element : React . ReactElement ) => unknown ;
19
19
unstable_validateStringsRenderedWithinText ?: boolean ;
20
20
}
21
21
@@ -35,38 +35,37 @@ export interface RenderInternalOptions extends RenderOptions {
35
35
36
36
export function renderInternal < T > (
37
37
component : React . ReactElement < T > ,
38
- {
38
+ options ?: RenderInternalOptions ,
39
+ ) {
40
+ const {
39
41
wrapper : Wrapper ,
40
- createNodeMock,
41
- unstable_validateStringsRenderedWithinText,
42
42
detectHostComponentNames = true ,
43
- } : RenderInternalOptions = { } ,
44
- ) {
43
+ unstable_validateStringsRenderedWithinText,
44
+ ...testRendererOptions
45
+ } = options || { } ;
46
+
45
47
if ( detectHostComponentNames ) {
46
48
configureHostComponentNamesIfNeeded ( ) ;
47
49
}
48
50
49
51
if ( unstable_validateStringsRenderedWithinText ) {
50
52
return renderWithStringValidation ( component , {
51
53
wrapper : Wrapper ,
52
- createNodeMock ,
54
+ ... testRendererOptions ,
53
55
} ) ;
54
56
}
55
57
56
58
const wrap = ( element : React . ReactElement ) => ( Wrapper ? < Wrapper > { element } </ Wrapper > : element ) ;
57
-
58
- const renderer = renderWithAct ( wrap ( component ) , createNodeMock ? { createNodeMock } : undefined ) ;
59
-
59
+ const renderer = renderWithAct ( wrap ( component ) , testRendererOptions ) ;
60
60
return buildRenderResult ( renderer , wrap ) ;
61
61
}
62
62
63
63
function renderWithStringValidation < T > (
64
64
component : React . ReactElement < T > ,
65
- {
66
- wrapper : Wrapper ,
67
- createNodeMock,
68
- } : Omit < RenderOptions , 'unstable_validateStringsRenderedWithinText' > = { } ,
65
+ options : Omit < RenderOptions , 'unstable_validateStringsRenderedWithinText' > = { } ,
69
66
) {
67
+ const { wrapper : Wrapper , ...testRendererOptions } = options ?? { } ;
68
+
70
69
const handleRender : React . ProfilerProps [ 'onRender' ] = ( _ , phase ) => {
71
70
if ( phase === 'update' ) {
72
71
validateStringsRenderedWithinText ( screen . toJSON ( ) ) ;
@@ -79,7 +78,7 @@ function renderWithStringValidation<T>(
79
78
</ Profiler >
80
79
) ;
81
80
82
- const renderer = renderWithAct ( wrap ( component ) , createNodeMock ? { createNodeMock } : undefined ) ;
81
+ const renderer = renderWithAct ( wrap ( component ) , testRendererOptions ) ;
83
82
validateStringsRenderedWithinText ( renderer . toJSON ( ) ) ;
84
83
85
84
return buildRenderResult ( renderer , wrap ) ;
0 commit comments