11/* eslint-disable react/no-render-return-value, max-classes-per-file, func-names, no-console */
22import React from 'react' ;
3- import { mount } from 'enzyme ' ;
3+ import { render } from '@testing-library/react ' ;
44import Dialog from '../src' ;
55
66/**
@@ -17,75 +17,65 @@ describe('Dialog.Scroll', () => {
1717 } ) ;
1818
1919 it ( 'Single Dialog body overflow set correctly' , ( ) => {
20- const wrapper = mount ( < Dialog /> , { attachTo : document . body } ) ;
21- document . body . style . overflow = 'scroll' ;
20+ const { unmount, rerender } = render ( < Dialog visible /> ) ;
2221
23- wrapper . setProps ( { visible : true } ) ;
24- jest . runAllTimers ( ) ;
25- wrapper . update ( ) ;
26- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
22+ expect ( document . body ) . toHaveStyle ( {
23+ overflowY : 'hidden' ,
24+ } ) ;
2725
28- wrapper . setProps ( { visible : false } ) ;
29- jest . runAllTimers ( ) ;
30- wrapper . update ( ) ;
31- expect ( document . body . style . overflow ) . toBe ( 'scroll' ) ;
26+ rerender ( < Dialog /> ) ;
27+ expect ( document . body ) . not . toHaveStyle ( {
28+ overflowY : 'hidden' ,
29+ } ) ;
3230
33- wrapper . unmount ( ) ;
31+ // wrapper.unmount();
32+ unmount ( ) ;
3433 } ) ;
3534
3635 it ( 'Multiple Dialog body overflow set correctly' , ( ) => {
37- document . body . style . overflow = 'scroll' ;
38-
3936 const Demo = ( { visible = false , visible2 = false , ...restProps } ) => (
4037 < div >
4138 < Dialog { ...restProps } visible = { visible } />
4239 < Dialog { ...restProps } visible = { visible2 } />
4340 </ div >
4441 ) ;
4542
46- const wrapper = mount ( < Demo /> , { attachTo : document . body } ) ;
47-
48- expect ( wrapper . find ( '.rc-dialog' ) . length ) . toBe ( 0 ) ;
49-
50- wrapper . setProps ( { visible : true } ) ;
51- jest . runAllTimers ( ) ;
43+ const { rerender, unmount } = render ( < Demo /> ) ;
5244
53- expect ( wrapper . find ( 'div.rc-dialog' ) . length ) . toBe ( 1 ) ;
54- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
45+ expect ( document . querySelector ( '.rc-dialog' ) ) . toBeFalsy ( ) ;
5546
56- wrapper . setProps ( { visible2 : true } ) ;
57- jest . runAllTimers ( ) ;
58-
59- expect ( wrapper . find ( 'div.rc-dialog' ) . length ) . toBe ( 2 ) ;
60- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
47+ rerender ( < Demo visible /> ) ;
48+ expect ( document . querySelectorAll ( '.rc-dialog' ) ) . toHaveLength ( 1 ) ;
49+ expect ( document . body ) . toHaveStyle ( {
50+ overflowY : 'hidden' ,
51+ } ) ;
6152
62- wrapper . setProps ( {
63- visible : false ,
64- visible2 : false ,
53+ rerender ( < Demo visible visible2 /> ) ;
54+ expect ( document . querySelectorAll ( '.rc-dialog' ) ) . toHaveLength ( 2 ) ;
55+ expect ( document . body ) . toHaveStyle ( {
56+ overflowY : 'hidden' ,
6557 } ) ;
66- jest . runAllTimers ( ) ;
6758
68- expect ( document . body . style . overflow ) . toBe ( 'scroll' ) ;
59+ rerender ( < Demo /> ) ;
60+ expect ( document . body ) . not . toHaveStyle ( {
61+ overflowY : 'hidden' ,
62+ } ) ;
6963
70- wrapper . setProps ( {
71- visible : true ,
64+ rerender ( < Demo visible /> ) ;
65+ expect ( document . body ) . toHaveStyle ( {
66+ overflowY : 'hidden' ,
7267 } ) ;
73- jest . runAllTimers ( ) ;
74- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
7568
76- wrapper . setProps ( {
77- visible : false ,
78- visible2 : true ,
69+ rerender ( < Demo visible2 /> ) ;
70+ expect ( document . body ) . toHaveStyle ( {
71+ overflowY : 'hidden' ,
7972 } ) ;
80- jest . runAllTimers ( ) ;
81- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
8273
83- wrapper . setProps ( {
84- visible : false ,
85- visible2 : false ,
74+ rerender ( < Demo /> ) ;
75+ expect ( document . body ) . not . toHaveStyle ( {
76+ overflowY : 'hidden' ,
8677 } ) ;
87- jest . runAllTimers ( ) ;
88- expect ( document . body . style . overflow ) . toBe ( 'scroll' ) ;
89- wrapper . unmount ( ) ;
78+
79+ unmount ( ) ;
9080 } ) ;
9181} ) ;
0 commit comments