@@ -21,26 +21,39 @@ it.skip(({ isElectron, browserMajorVersion, isAndroid }) => {
21
21
return ( isElectron && browserMajorVersion <= 11 ) || isAndroid ;
22
22
} ) ;
23
23
24
- let deltaScale = 1 ;
24
+ let ignoreDelta = false ;
25
25
26
26
it . beforeAll ( async ( { browserMajorVersion, browserName, platform } ) => {
27
27
if ( browserName === 'chromium' && browserMajorVersion >= 102 && platform === 'darwin' ) {
28
28
// Chromium reports deltaX/deltaY scaled by host device scale factor.
29
29
// https://bugs.chromium.org/p/chromium/issues/detail?id=1324819
30
30
// https://github.com/microsoft/playwright/issues/7362
31
- deltaScale = 2 ;
31
+ // Different bots have different scale factors (usually 1 or 2), so we just ignore the values
32
+ // instead of guessing the host scale factor.
33
+ ignoreDelta = true ;
32
34
}
33
35
} ) ;
34
36
37
+ async function expectEvent ( page : Page , expected : any ) {
38
+ const received = await page . evaluate ( 'window.lastEvent' ) as any ;
39
+ if ( ignoreDelta ) {
40
+ delete received . deltaX ;
41
+ delete received . deltaY ;
42
+ delete expected . deltaX ;
43
+ delete expected . deltaY ;
44
+ }
45
+ expect ( received ) . toEqual ( expected ) ;
46
+ }
47
+
35
48
it ( 'should dispatch wheel events @smoke' , async ( { page, server } ) => {
36
49
await page . setContent ( `<div style="width: 5000px; height: 5000px;"></div>` ) ;
37
50
await page . mouse . move ( 50 , 60 ) ;
38
51
await listenForWheelEvents ( page , 'div' ) ;
39
52
await page . mouse . wheel ( 0 , 100 ) ;
40
53
await page . waitForFunction ( 'window.scrollY === 100' ) ;
41
- expect ( await page . evaluate ( 'window.lastEvent' ) ) . toEqual ( {
42
- deltaX : 0 * deltaScale ,
43
- deltaY : 100 * deltaScale ,
54
+ await expectEvent ( page , {
55
+ deltaX : 0 ,
56
+ deltaY : 100 ,
44
57
clientX : 50 ,
45
58
clientY : 60 ,
46
59
deltaMode : 0 ,
@@ -64,9 +77,9 @@ it('should set the modifiers', async ({ page }) => {
64
77
await listenForWheelEvents ( page , 'div' ) ;
65
78
await page . keyboard . down ( 'Shift' ) ;
66
79
await page . mouse . wheel ( 0 , 100 ) ;
67
- expect ( await page . evaluate ( 'window.lastEvent' ) ) . toEqual ( {
68
- deltaX : 0 * deltaScale ,
69
- deltaY : 100 * deltaScale ,
80
+ await expectEvent ( page , {
81
+ deltaX : 0 ,
82
+ deltaY : 100 ,
70
83
clientX : 50 ,
71
84
clientY : 60 ,
72
85
deltaMode : 0 ,
@@ -82,9 +95,9 @@ it('should scroll horizontally', async ({ page }) => {
82
95
await page . mouse . move ( 50 , 60 ) ;
83
96
await listenForWheelEvents ( page , 'div' ) ;
84
97
await page . mouse . wheel ( 100 , 0 ) ;
85
- expect ( await page . evaluate ( 'window.lastEvent' ) ) . toEqual ( {
86
- deltaX : 100 * deltaScale ,
87
- deltaY : 0 * deltaScale ,
98
+ await expectEvent ( page , {
99
+ deltaX : 100 ,
100
+ deltaY : 0 ,
88
101
clientX : 50 ,
89
102
clientY : 60 ,
90
103
deltaMode : 0 ,
@@ -104,9 +117,9 @@ it('should work when the event is canceled', async ({ page }) => {
104
117
document . querySelector ( 'div' ) . addEventListener ( 'wheel' , e => e . preventDefault ( ) ) ;
105
118
} ) ;
106
119
await page . mouse . wheel ( 0 , 100 ) ;
107
- expect ( await page . evaluate ( 'window.lastEvent' ) ) . toEqual ( {
108
- deltaX : 0 * deltaScale ,
109
- deltaY : 100 * deltaScale ,
120
+ await expectEvent ( page , {
121
+ deltaX : 0 ,
122
+ deltaY : 100 ,
110
123
clientX : 50 ,
111
124
clientY : 60 ,
112
125
deltaMode : 0 ,
0 commit comments