@@ -4,7 +4,7 @@ import { act } from 'react-dom/test-utils';
44import { mount , ReactWrapper } from 'enzyme' ;
55import Portal from 'rc-util/lib/Portal' ;
66import KeyCode from 'rc-util/lib/KeyCode' ;
7- import Dialog from '../src' ;
7+ import Dialog , { DialogProps } from '../src' ;
88
99describe ( 'dialog' , ( ) => {
1010 beforeEach ( ( ) => {
@@ -359,18 +359,22 @@ describe('dialog', () => {
359359 } ) ;
360360
361361 describe ( 're-render' , ( ) => {
362- function createWrapper ( ) : [ ReactWrapper , ( ) => number ] {
362+ function createWrapper ( props ?: Partial < DialogProps > ) : [ ReactWrapper , ( ) => number ] {
363363 let renderTimes = 0 ;
364364 const RenderChecker = ( ) => {
365365 renderTimes += 1 ;
366366 return null ;
367367 } ;
368368
369- const wrapper = mount (
370- < Dialog visible >
371- < RenderChecker />
372- </ Dialog > ,
373- ) ;
369+ const Demo = ( demoProps ?: any ) => {
370+ return (
371+ < Dialog visible { ...props } { ...demoProps } >
372+ < RenderChecker />
373+ </ Dialog >
374+ ) ;
375+ } ;
376+
377+ const wrapper = mount ( < Demo /> ) ;
374378
375379 return [ wrapper , ( ) => renderTimes ] ;
376380 }
@@ -383,5 +387,14 @@ describe('dialog', () => {
383387 wrapper . setProps ( { visible : false } ) ;
384388 expect ( getRenderTimes ( ) ) . toEqual ( 1 ) ;
385389 } ) ;
390+
391+ it ( 'should re-render when forceRender' , ( ) => {
392+ const [ wrapper , getRenderTimes ] = createWrapper ( { forceRender : true } ) ;
393+ expect ( getRenderTimes ( ) ) . toEqual ( 1 ) ;
394+
395+ // Hidden should not trigger render
396+ wrapper . setProps ( { visible : false } ) ;
397+ expect ( getRenderTimes ( ) ) . toEqual ( 2 ) ;
398+ } ) ;
386399 } ) ;
387400} ) ;
0 commit comments