1
1
/* eslint-disable react/no-render-return-value, max-classes-per-file, func-names, no-console */
2
2
import React from 'react' ;
3
- import { mount } from 'enzyme ' ;
3
+ import { render } from '@testing-library/react ' ;
4
4
import Dialog from '../src' ;
5
5
6
6
/**
@@ -17,75 +17,65 @@ describe('Dialog.Scroll', () => {
17
17
} ) ;
18
18
19
19
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 /> ) ;
22
21
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
+ } ) ;
27
25
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
+ } ) ;
32
30
33
- wrapper . unmount ( ) ;
31
+ // wrapper.unmount();
32
+ unmount ( ) ;
34
33
} ) ;
35
34
36
35
it ( 'Multiple Dialog body overflow set correctly' , ( ) => {
37
- document . body . style . overflow = 'scroll' ;
38
-
39
36
const Demo = ( { visible = false , visible2 = false , ...restProps } ) => (
40
37
< div >
41
38
< Dialog { ...restProps } visible = { visible } />
42
39
< Dialog { ...restProps } visible = { visible2 } />
43
40
</ div >
44
41
) ;
45
42
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 /> ) ;
52
44
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 ( ) ;
55
46
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
+ } ) ;
61
52
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' ,
65
57
} ) ;
66
- jest . runAllTimers ( ) ;
67
58
68
- expect ( document . body . style . overflow ) . toBe ( 'scroll' ) ;
59
+ rerender ( < Demo /> ) ;
60
+ expect ( document . body ) . not . toHaveStyle ( {
61
+ overflowY : 'hidden' ,
62
+ } ) ;
69
63
70
- wrapper . setProps ( {
71
- visible : true ,
64
+ rerender ( < Demo visible /> ) ;
65
+ expect ( document . body ) . toHaveStyle ( {
66
+ overflowY : 'hidden' ,
72
67
} ) ;
73
- jest . runAllTimers ( ) ;
74
- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
75
68
76
- wrapper . setProps ( {
77
- visible : false ,
78
- visible2 : true ,
69
+ rerender ( < Demo visible2 /> ) ;
70
+ expect ( document . body ) . toHaveStyle ( {
71
+ overflowY : 'hidden' ,
79
72
} ) ;
80
- jest . runAllTimers ( ) ;
81
- expect ( document . body . style . overflow ) . toBe ( 'hidden' ) ;
82
73
83
- wrapper . setProps ( {
84
- visible : false ,
85
- visible2 : false ,
74
+ rerender ( < Demo /> ) ;
75
+ expect ( document . body ) . not . toHaveStyle ( {
76
+ overflowY : 'hidden' ,
86
77
} ) ;
87
- jest . runAllTimers ( ) ;
88
- expect ( document . body . style . overflow ) . toBe ( 'scroll' ) ;
89
- wrapper . unmount ( ) ;
78
+
79
+ unmount ( ) ;
90
80
} ) ;
91
81
} ) ;
0 commit comments