Skip to content

Commit e79381f

Browse files
authored
Vitest: fix viewport scale (#3895)
1 parent 8f5ccef commit e79381f

File tree

2 files changed

+14
-39
lines changed

2 files changed

+14
-39
lines changed

test/browser/column/resizable.test.tsx

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,14 @@ test('should resize column when dragging the handle', async () => {
5454
expect(onColumnResize).not.toHaveBeenCalled();
5555
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px' });
5656
await resize('col2', -50);
57-
await testGridTemplateColumns('100px 150px', '100px 150.5px');
58-
expect(onColumnResize).toHaveBeenCalledExactlyOnceWith(
59-
expect.objectContaining(columns[1]),
60-
satisfyRange(150)
61-
);
57+
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 150px' });
58+
expect(onColumnResize).toHaveBeenCalledExactlyOnceWith(expect.objectContaining(columns[1]), 150);
6259
});
6360

6461
test('should use the maxWidth if specified when dragging the handle', async () => {
6562
await setup<Row, unknown>({ columns, rows: [] });
6663
const grid = getGrid();
67-
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px ' });
64+
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px' });
6865
await resize('col2', 1000);
6966
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 400px' });
7067
});
@@ -100,7 +97,7 @@ test('should use the maxWidth if specified when resizing using keyboard', async
10097
const onColumnResize = vi.fn();
10198
await setup<Row, unknown>({ columns, rows: [], onColumnResize });
10299
const grid = getGrid();
103-
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px ' });
100+
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px' });
104101
const col2 = getHeaderCell('col2');
105102
await userEvent.click(col2);
106103
await userEvent.keyboard(`{Control>}${'{ArrowRight}'.repeat(22)}{/Control}`);
@@ -305,16 +302,8 @@ test('should use columnWidths and onColumnWidthsChange props when provided', asy
305302
])
306303
);
307304
expect(onColumnResizeSpy).toHaveBeenCalledTimes(3);
308-
expect(onColumnResizeSpy).toHaveBeenNthCalledWith(
309-
1,
310-
expect.objectContaining(columns[1]),
311-
satisfyRange(105)
312-
);
313-
expect(onColumnResizeSpy).toHaveBeenNthCalledWith(
314-
2,
315-
expect.objectContaining(columns[1]),
316-
satisfyRange(110)
317-
);
305+
expect(onColumnResizeSpy).toHaveBeenNthCalledWith(1, expect.objectContaining(columns[1]), 105);
306+
expect(onColumnResizeSpy).toHaveBeenNthCalledWith(2, expect.objectContaining(columns[1]), 110);
318307
expect(onColumnResizeSpy).toHaveBeenNthCalledWith(3, expect.objectContaining(columns[1]), 115);
319308
onColumnWidthsChangeSpy.mockClear();
320309
onColumnResizeSpy.mockClear();
@@ -324,11 +313,10 @@ test('should use columnWidths and onColumnWidthsChange props when provided', asy
324313
expect(onColumnResizeSpy).not.toHaveBeenCalled();
325314
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '120px 120px' });
326315
await resize('col2', [5, 5]);
327-
const col2Width = navigator.userAgent.includes('Chrome') ? 130 : 130.5;
328316
expect(onColumnWidthsChangeSpy).toHaveBeenCalledExactlyOnceWith(
329317
new Map([
330318
['col1', { width: 120, type: 'measured' }],
331-
['col2', { width: col2Width, type: 'resized' }]
319+
['col2', { width: 130, type: 'resized' }]
332320
])
333321
);
334322
});
@@ -346,9 +334,3 @@ async function testGridTemplateColumns(chrome: string, firefox: string, firefoxC
346334
});
347335
}
348336
}
349-
350-
// TODO: remove once scale is set to 1
351-
function satisfyRange(value: number) {
352-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
353-
return expect.toSatisfy((v: number) => v >= value - 1 && v <= value + 1);
354-
}

vite.config.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ const resizeColumn: BrowserCommand<[name: string, resizeBy: number | readonly nu
2323
await page.mouse.move(x + 5, y + 5);
2424
await page.mouse.down();
2525
resizeBy = Array.isArray(resizeBy) ? resizeBy : [resizeBy];
26-
// https://github.com/vitest-dev/vitest/issues/8099#issuecomment-2959674792
27-
const frameScale = Number((await page.locator('#vitest-tester').getAttribute('data-scale')) ?? 1);
2826
let newX = x + 5;
2927
for (const value of resizeBy) {
30-
newX += value * frameScale;
28+
newX += value;
3129
await page.mouse.move(newX, y + 5);
3230
}
3331
await page.mouse.up();
@@ -122,20 +120,15 @@ export default defineConfig(
122120
// TODO: remove when FF tests are stable
123121
fileParallelism: false,
124122
enabled: true,
125-
provider: playwright(),
123+
provider: playwright({
124+
contextOptions: {
125+
viewport
126+
}
127+
}),
126128
trace: {
127129
mode: isCI ? 'off' : 'retain-on-failure'
128130
},
129-
instances: [
130-
{
131-
browser: 'chromium',
132-
viewport
133-
},
134-
{
135-
browser: 'firefox',
136-
viewport
137-
}
138-
],
131+
instances: [{ browser: 'chromium' }, { browser: 'firefox' }],
139132
commands: { resizeColumn, dragFill, scrollGrid },
140133
viewport,
141134
headless: true,

0 commit comments

Comments
 (0)