@@ -35,12 +35,13 @@ describe('findDOMNode', () => {
35
35
const errSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
36
36
37
37
class DOMWrapper extends React . Component {
38
+ private elementRef = React . createRef < HTMLDivElement > ( ) ;
38
39
getDOM = ( ) => {
39
- return findDOMNode ( this ) ;
40
+ return findDOMNode ( this . elementRef ) ;
40
41
} ;
41
42
42
43
render ( ) {
43
- return < div /> ;
44
+ return < div ref = { this . elementRef } /> ;
44
45
}
45
46
}
46
47
@@ -53,7 +54,7 @@ describe('findDOMNode', () => {
53
54
54
55
expect ( wrapperRef . current ! . getDOM ( ) ) . toBe ( container . firstChild ) ;
55
56
56
- expect ( errSpy ) . toHaveBeenCalled ( ) ;
57
+ expect ( errSpy ) . not . toHaveBeenCalled ( ) ;
57
58
errSpy . mockRestore ( ) ;
58
59
} ) ;
59
60
@@ -75,7 +76,26 @@ describe('findDOMNode', () => {
75
76
expect ( true ) . toBeFalsy ( ) ;
76
77
}
77
78
} ) ;
79
+ it ( 'should return DOM node from ref.current' , ( ) => {
80
+ const TestComponent = React . forwardRef < HTMLDivElement > ( ( _ , ref ) => {
81
+ return < div ref = { ref } > test</ div > ;
82
+ } ) ;
78
83
84
+ const elementRef = React . createRef < HTMLDivElement > ( ) ;
85
+ const { container } = render (
86
+ < React . StrictMode >
87
+ < TestComponent ref = { elementRef } />
88
+ </ React . StrictMode > ,
89
+ ) ;
90
+
91
+ expect ( findDOMNode ( elementRef ) ) . toBe ( container . firstChild ) ;
92
+ } ) ;
93
+
94
+ it ( 'should return null if ref is not mounted' , ( ) => {
95
+ const elementRef = React . createRef < HTMLDivElement > ( ) ;
96
+
97
+ expect ( findDOMNode ( elementRef ) ) . toBeNull ( ) ;
98
+ } ) ;
79
99
it ( 'nativeElement' , ( ) => {
80
100
const Element = React . forwardRef < { nativeElement : HTMLDivElement } > (
81
101
( _ , ref ) => {
0 commit comments