@@ -20,13 +20,16 @@ pointer([{target: element}, {keys: '[MouseLeft]', target: element}])
20
20
21
21
``` js
22
22
test (' click' , async () => {
23
+ const onChange = jest .fn ()
23
24
const user = userEvent .setup ()
24
- render (< input type= " checkbox" / > )
25
+
26
+ render (< input type= " checkbox" onChange= {onChange} / > )
25
27
26
28
const checkbox = screen .getByRole (' checkbox' )
27
29
28
30
await user .click (checkbox)
29
31
32
+ expect (onChange).toHaveBeenCalledTimes (1 )
30
33
expect (checkbox).toBeChecked ()
31
34
})
32
35
```
@@ -45,13 +48,16 @@ pointer([{target: element}, {keys: '[MouseLeft][MouseLeft]', target: element}])
45
48
46
49
``` js
47
50
test (' double click' , async () => {
51
+ const onChange = jest .fn ()
48
52
const user = userEvent .setup ()
49
- render (< input type= " checkbox" / > )
53
+
54
+ render (< input type= " checkbox" onChange= {onChange} / > )
50
55
51
56
const checkbox = screen .getByRole (' checkbox' )
52
57
53
58
await user .dblClick (checkbox)
54
59
60
+ expect (onChange).toHaveBeenCalledTimes (2 )
55
61
expect (checkbox).not .toBeChecked ()
56
62
})
57
63
```
@@ -71,13 +77,16 @@ pointer([
71
77
72
78
``` js
73
79
test (' triple click' , async () => {
80
+ const onChange = jest .fn ()
74
81
const user = userEvent .setup ()
75
- render (< input type= " checkbox" / > )
82
+
83
+ render (< input type= " checkbox" onChange= {onChange} / > )
76
84
77
85
const checkbox = screen .getByRole (' checkbox' )
78
86
79
87
await user .tripleClick (checkbox)
80
88
89
+ expect (onChange).toHaveBeenCalledTimes (3 )
81
90
expect (checkbox).toBeChecked ()
82
91
})
83
92
```
@@ -95,33 +104,29 @@ pointer({target: element})
95
104
```
96
105
97
106
``` js
98
- const TestComponent = () => {
99
- const [isHover , setIsHover ] = useState (false )
100
-
101
- return (
102
- < p
103
- role= " paragraph"
104
- onMouseEnter= {() => setIsHover (true )}
105
- onMouseLeave= {() => setIsHover (false )}
106
- >
107
- {isHover ? ' Hover' : ' UnHover' }
108
- < / p>
109
- )
110
- }
111
-
112
107
test (' hover/unhover' , async () => {
113
108
const user = userEvent .setup ()
114
- render (< TestComponent / > )
109
+ render (< div> Hover< / div> )
110
+
111
+ const hoverBox = screen .getByText (' Hover' )
112
+ let isHover = false
113
+
114
+ hoverBox .addEventListener (' mouseover' , () => {
115
+ isHover = true
116
+ })
117
+ hoverBox .addEventListener (' mouseout' , () => {
118
+ isHover = false
119
+ })
115
120
116
- const paragraph = screen . getByRole ( ' paragraph ' )
121
+ expect (isHover). toBeFalsy ( )
117
122
118
- await user .hover (paragraph )
123
+ await user .hover (hoverBox )
119
124
120
- expect (paragraph). toHaveTextContent ( ' Hover ' )
125
+ expect (isHover). toBeTruthy ( )
121
126
122
- await user .unhover (paragraph )
127
+ await user .unhover (hoverBox )
123
128
124
- expect (paragraph). toHaveTextContent ( ' UnHover ' )
129
+ expect (isHover). toBeFalsy ( )
125
130
})
126
131
```
127
132
0 commit comments