/
hover.js
41 lines (35 loc) 路 1.23 KB
/
hover.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import {fireEvent} from '@testing-library/dom'
import {
isLabelWithInternallyDisabledControl,
getMouseEventOptions,
wrapInEventWrapper,
} from './utils'
function hover(element, init) {
if (isLabelWithInternallyDisabledControl(element)) return
fireEvent.pointerOver(element, init)
fireEvent.pointerEnter(element, init)
if (!element.disabled) {
fireEvent.mouseOver(element, getMouseEventOptions('mouseover', init))
fireEvent.mouseEnter(element, getMouseEventOptions('mouseenter', init))
}
fireEvent.pointerMove(element, init)
if (!element.disabled) {
fireEvent.mouseMove(element, getMouseEventOptions('mousemove', init))
}
}
function unhover(element, init) {
if (isLabelWithInternallyDisabledControl(element)) return
fireEvent.pointerMove(element, init)
if (!element.disabled) {
fireEvent.mouseMove(element, getMouseEventOptions('mousemove', init))
}
fireEvent.pointerOut(element, init)
fireEvent.pointerLeave(element, init)
if (!element.disabled) {
fireEvent.mouseOut(element, getMouseEventOptions('mouseout', init))
fireEvent.mouseLeave(element, getMouseEventOptions('mouseleave', init))
}
}
hover = wrapInEventWrapper(hover)
unhover = wrapInEventWrapper(unhover)
export {hover, unhover}