Skip to content

Commit 00434e4

Browse files
committed
test: Add test case
1 parent de03c77 commit 00434e4

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

tests/index.spec.tsx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { act } from 'react-dom/test-utils';
44
import { mount, ReactWrapper } from 'enzyme';
55
import Portal from 'rc-util/lib/Portal';
66
import KeyCode from 'rc-util/lib/KeyCode';
7-
import Dialog from '../src';
7+
import Dialog, { DialogProps } from '../src';
88

99
describe('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

Comments
 (0)