@@ -4,6 +4,11 @@ import { calculateHitArea } from "../src/utils/calculateHitArea";
44import { getCenterCoordinates } from "../src/utils/getCenterCoordinates" ;
55import { goToUrl } from "../src/utils/goToUrl" ;
66
7+ // The cursor boundary check logic relies on the layout not changing between two movements in order to detect "you've moved too far, there's no more resizing that can be done"
8+ // This type of test isn't totally realistic; only one mouse-move between big pixel gaps is unlikely in all but the most extreme perf bottlenecks.
9+ // To mimic something closer to a real world scenario, we need to split move events into multiple pointer move events.
10+ const moveConfig = { steps : 10 } ;
11+
712test . describe ( "cursor" , ( ) => {
813 for ( const usePopUpWindow of [ true , false ] ) {
914 test . describe ( usePopUpWindow ? "in a popup" : "in the main window" , ( ) => {
@@ -25,22 +30,20 @@ test.describe("cursor", () => {
2530 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
2631 ) . toBe ( "auto" ) ;
2732
28- await page . mouse . move ( x , y ) ;
33+ await page . mouse . move ( x , y , moveConfig ) ;
2934
3035 expect (
3136 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
3237 ) . toBe ( "ew-resize" ) ;
3338
3439 await page . mouse . down ( ) ;
35- await page . mouse . move ( 50 , y ) ;
36- await page . mouse . move ( 25 , y ) ;
40+ await page . mouse . move ( 25 , y , moveConfig ) ;
3741
3842 expect (
3943 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
4044 ) . toBe ( "e-resize" ) ;
4145
42- await page . mouse . move ( 950 , y ) ;
43- await page . mouse . move ( 975 , y ) ;
46+ await page . mouse . move ( 975 , y , moveConfig ) ;
4447
4548 expect (
4649 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
@@ -65,22 +68,20 @@ test.describe("cursor", () => {
6568 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
6669 ) . toBe ( "auto" ) ;
6770
68- await page . mouse . move ( x , y ) ;
71+ await page . mouse . move ( x , y , moveConfig ) ;
6972
7073 expect (
7174 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
7275 ) . toBe ( "ns-resize" ) ;
7376
7477 await page . mouse . down ( ) ;
75- await page . mouse . move ( x , 1 ) ;
76- await page . mouse . move ( x , 0 ) ;
78+ await page . mouse . move ( x , 0 , moveConfig ) ;
7779
7880 expect (
7981 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
8082 ) . toBe ( "s-resize" ) ;
8183
82- await page . mouse . move ( x , 599 ) ;
83- await page . mouse . move ( x , 600 ) ;
84+ await page . mouse . move ( x , 600 , moveConfig ) ;
8485
8586 expect (
8687 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
@@ -114,70 +115,62 @@ test.describe("cursor", () => {
114115 ) . toBe ( "auto" ) ;
115116
116117 // Centered
117- await page . mouse . move ( x , y ) ;
118+ await page . mouse . move ( x , y , moveConfig ) ;
118119 expect (
119120 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
120121 ) . toBe ( "move" ) ;
121122
122123 // Top left
123124 await page . mouse . down ( ) ;
124- await page . mouse . move ( 2 , 1 ) ;
125- await page . mouse . move ( 1 , 1 ) ;
125+ await page . mouse . move ( 1 , 1 , moveConfig ) ;
126126 expect (
127127 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
128128 ) . toBe ( "se-resize" ) ;
129129
130130 // Top
131- await page . mouse . move ( x , 1 ) ;
132- await page . mouse . move ( x , 0 ) ;
131+ await page . mouse . move ( x , 0 , moveConfig ) ;
133132 expect (
134133 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
135134 ) . toBe ( "s-resize" ) ;
136135
137136 // Top right
138- await page . mouse . move ( 999 , 1 ) ;
139- await page . mouse . move ( 1000 , 1 ) ;
137+ await page . mouse . move ( 1000 , 1 , moveConfig ) ;
140138 expect (
141139 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
142140 ) . toBe ( "sw-resize" ) ;
143141
144142 // Right
145- await page . mouse . move ( 950 , y ) ;
146- await page . mouse . move ( 975 , y ) ;
143+ await page . mouse . move ( 975 , y , moveConfig ) ;
147144 expect (
148145 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
149146 ) . toBe ( "w-resize" ) ;
150147
151148 // Bottom right
152- await page . mouse . move ( 1000 , 599 ) ;
153- await page . mouse . move ( 1000 , 600 ) ;
149+ await page . mouse . move ( 1000 , 600 , moveConfig ) ;
154150 expect (
155151 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
156152 ) . toBe ( "nw-resize" ) ;
157153
158154 // Bottom
159- await page . mouse . move ( x , 599 ) ;
160- await page . mouse . move ( x , 600 ) ;
155+ await page . mouse . move ( x , 600 , moveConfig ) ;
161156 expect (
162157 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
163158 ) . toBe ( "n-resize" ) ;
164159
165160 // Bottom left
166- await page . mouse . move ( 1 , 599 ) ;
167- await page . mouse . move ( 1 , 600 ) ;
161+ await page . mouse . move ( 1 , 600 , moveConfig ) ;
168162 expect (
169163 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
170164 ) . toBe ( "ne-resize" ) ;
171165
172166 // Left
173- await page . mouse . move ( 50 , y ) ;
174- await page . mouse . move ( 25 , y ) ;
167+ await page . mouse . move ( 25 , y , moveConfig ) ;
175168 expect (
176169 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
177170 ) . toBe ( "e-resize" ) ;
178171
179172 // Centered
180- await page . mouse . move ( x , y ) ;
173+ await page . mouse . move ( x , y , moveConfig ) ;
181174 expect (
182175 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
183176 ) . toBe ( "move" ) ;
@@ -210,15 +203,15 @@ test.describe("cursor", () => {
210203 ) . toBe ( "auto" ) ;
211204
212205 // Centered
213- await page . mouse . move ( x , y ) ;
206+ await page . mouse . move ( x , y , moveConfig ) ;
214207 expect (
215208 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
216209 ) . toBe ( "move" ) ;
217210
218211 await page . mouse . down ( ) ;
219212
220213 // Moving only in one dimension should not affect the cursor
221- await page . mouse . move ( x , y - 25 ) ;
214+ await page . mouse . move ( x , y - 25 , moveConfig ) ;
222215 expect (
223216 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
224217 ) . toBe ( "move" ) ;
@@ -242,7 +235,7 @@ test.describe("cursor", () => {
242235 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
243236 ) . toBe ( "auto" ) ;
244237
245- await page . mouse . move ( x , y ) ;
238+ await page . mouse . move ( x , y , moveConfig ) ;
246239
247240 expect (
248241 await page . evaluate ( ( ) => getComputedStyle ( document . body ) . cursor )
0 commit comments