@@ -36,14 +36,14 @@ describe('Trigger.Basic', () => {
36
36
. className . includes ( '-hidden' ) ;
37
37
}
38
38
function isPopupClassHidden ( name ) {
39
- return document
40
- . querySelector ( name ) . className . includes ( '-hidden' )
39
+ return document . querySelector ( name ) . className . includes ( '-hidden' ) ;
41
40
}
42
41
function isPopupAllHidden ( ) {
43
- const popupArr = document
44
- . querySelectorAll ( '.rc-trigger-popup' )
45
-
46
- return Array . from ( popupArr ) . every ( item => item . className . includes ( '-hidden' ) )
42
+ const popupArr = document . querySelectorAll ( '.rc-trigger-popup' ) ;
43
+
44
+ return Array . from ( popupArr ) . every ( ( item ) =>
45
+ item . className . includes ( '-hidden' ) ,
46
+ ) ;
47
47
}
48
48
describe ( 'getPopupContainer' , ( ) => {
49
49
it ( 'defaults to document.body' , ( ) => {
@@ -176,7 +176,7 @@ describe('Trigger.Basic', () => {
176
176
< >
177
177
< Trigger
178
178
ref = { triggerRef1 }
179
- popupClassName = ' trigger-popup1'
179
+ popupClassName = " trigger-popup1"
180
180
action = { [ 'contextMenu' ] }
181
181
popupAlign = { placementAlignMap . left }
182
182
popup = { < strong > trigger1</ strong > }
@@ -186,15 +186,15 @@ describe('Trigger.Basic', () => {
186
186
< Trigger
187
187
ref = { triggerRef2 }
188
188
action = { [ 'contextMenu' ] }
189
- popupClassName = ' trigger-popup2'
189
+ popupClassName = " trigger-popup2"
190
190
popupAlign = { placementAlignMap . right }
191
191
popup = { < strong > trigger2</ strong > }
192
192
>
193
193
< div className = "target2" > contextMenu 2</ div >
194
194
</ Trigger >
195
195
</ > ,
196
196
) ;
197
-
197
+
198
198
trigger ( container , '.target1' , 'contextMenu' ) ;
199
199
trigger ( container , '.target2' , 'contextMenu' ) ;
200
200
expect ( isPopupClassHidden ( '.trigger-popup1' ) ) . toBeTruthy ( ) ;
@@ -882,7 +882,7 @@ describe('Trigger.Basic', () => {
882
882
} ) ;
883
883
884
884
it ( 'find real dom node if children not support `forwardRef`' , ( ) => {
885
- const errorSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
885
+ const errorSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
886
886
const Node = ( ) => < p /> ;
887
887
888
888
render (
@@ -1066,4 +1066,30 @@ describe('Trigger.Basic', () => {
1066
1066
expect ( document . querySelector ( '.rc-trigger-popup-hidden' ) ) . toBeFalsy ( ) ;
1067
1067
} ) ;
1068
1068
} ) ;
1069
+
1070
+ it ( 'not trigger open when hover hidden popup node' , ( ) => {
1071
+ const onPopupVisibleChange = jest . fn ( ) ;
1072
+
1073
+ const { container } = render (
1074
+ < Trigger
1075
+ onPopupVisibleChange = { onPopupVisibleChange }
1076
+ action = "hover"
1077
+ popup = { < strong className = "popup" > trigger</ strong > }
1078
+ getPopupContainer = { ( ) => container }
1079
+ >
1080
+ < div className = "target" />
1081
+ </ Trigger > ,
1082
+ ) ;
1083
+
1084
+ trigger ( container , '.target' , 'mouseEnter' ) ;
1085
+ expect ( onPopupVisibleChange ) . toHaveBeenCalledWith ( true ) ;
1086
+ onPopupVisibleChange . mockReset ( ) ;
1087
+
1088
+ trigger ( container , '.target' , 'mouseLeave' ) ;
1089
+ expect ( onPopupVisibleChange ) . toHaveBeenCalledWith ( false ) ;
1090
+ onPopupVisibleChange . mockReset ( ) ;
1091
+
1092
+ trigger ( container , '.popup' , 'mouseEnter' ) ;
1093
+ expect ( onPopupVisibleChange ) . not . toHaveBeenCalled ( ) ;
1094
+ } ) ;
1069
1095
} ) ;
0 commit comments