8000 test: make wheel event work on different host dsf (#14123) · microsoft/playwright@f562058 · GitHub
[go: up one dir, main page]

Skip to content

Commit f562058

Browse files
authored
test: make wheel event work on different host dsf (#14123)
Turns out, different mac bots have different device scale factor.
1 parent c5face5 commit f562058

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

tests/page/wheel.spec.ts

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,39 @@ it.skip(({ isElectron, browserMajorVersion, isAndroid }) => {
2121
return (isElectron && browserMajorVersion <= 11) || isAndroid;
2222
});
2323

24-
let deltaScale = 1;
24+
let ignoreDelta = false;
2525

2626
it.beforeAll(async ({ browserMajorVersion, browserName, platform }) => {
2727
if (browserName === 'chromium' && browserMajorVersion >= 102 && platform === 'darwin') {
2828
// Chromium reports deltaX/deltaY scaled by host device scale factor.
2929
// https://bugs.chromium.org/p/chromium/issues/detail?id=1324819
3030
// 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;
3234
}
3335
});
3436

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+
3548
it('should dispatch wheel events @smoke', async ({ page, server }) => {
3649
await page.setContent(`<div style="width: 5000px; height: 5000px;"></div>`);
3750
await page.mouse.move(50, 60);
3851
await listenForWheelEvents(page, 'div');
3952
await page.mouse.wheel(0, 100);
4053
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,
4457
clientX: 50,
4558
clientY: 60,
4659
deltaMode: 0,
@@ -64,9 +77,9 @@ it('should set the modifiers', async ({ page }) => {
6477
await listenForWheelEvents(page, 'div');
6578
await page.keyboard.down('Shift');
6679
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,
7083
clientX: 50,
7184
clientY: 60,
7285
deltaMode: 0,
@@ -82,9 +95,9 @@ it('should scroll horizontally', async ({ page }) => {
8295
await page.mouse.move(50, 60);
8396
await listenForWheelEvents(page, 'div');
8497
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,
88101
clientX: 50,
89102
clientY: 60,
90103
deltaMode: 0,
@@ -104,9 +117,9 @@ it('should work when the event is canceled', async ({ page }) => {
104117
document.querySelector('div').addEventListener('wheel', e => e.preventDefault());
105118
});
106119
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,
110123
clientX: 50,
111124
clientY: 60,
112125
deltaMode: 0,

0 commit comments

Comments
 (0)
0