@@ -35,12 +35,13 @@ describe('findDOMNode', () => {
3535 const errSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
3636
3737 class DOMWrapper extends React . Component {
38+ private elementRef = React . createRef < HTMLDivElement > ( ) ;
3839 getDOM = ( ) => {
39- return findDOMNode ( this ) ;
40+ return findDOMNode ( this . elementRef ) ;
4041 } ;
4142
4243 render ( ) {
43- return < div /> ;
44+ return < div ref = { this . elementRef } /> ;
4445 }
4546 }
4647
@@ -53,7 +54,7 @@ describe('findDOMNode', () => {
5354
5455 expect ( wrapperRef . current ! . getDOM ( ) ) . toBe ( container . firstChild ) ;
5556
56- expect ( errSpy ) . toHaveBeenCalled ( ) ;
57+ expect ( errSpy ) . not . toHaveBeenCalled ( ) ;
5758 errSpy . mockRestore ( ) ;
5859 } ) ;
5960
@@ -75,7 +76,26 @@ describe('findDOMNode', () => {
7576 expect ( true ) . toBeFalsy ( ) ;
7677 }
7778 } ) ;
79+ it ( 'should return DOM node from ref.current' , ( ) => {
80+ const TestComponent = React . forwardRef < HTMLDivElement > ( ( _ , ref ) => {
81+ return < div ref = { ref } > test</ div > ;
82+ } ) ;
7883
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+ } ) ;
7999 it ( 'nativeElement' , ( ) => {
80100 const Element = React . forwardRef < { nativeElement : HTMLDivElement } > (
81101 ( _ , ref ) => {
0 commit comments