Skip to content

Commit 3703f4f

Browse files
Bump the vitest group with 3 updates (adazzle#3692)
* Bump the vitest group with 3 updates Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Updates `@vitest/browser` from 2.1.8 to 3.0.2 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.2/packages/browser) Updates `@vitest/coverage-v8` from 2.1.8 to 3.0.2 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.2/packages/coverage-v8) Updates `vitest` from 2.1.8 to 3.0.2 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.2/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/browser" dependency-type: direct:development update-type: version-update:semver-major dependency-group: vitest - dependency-name: "@vitest/coverage-v8" dependency-type: direct:development update-type: version-update:semver-major dependency-group: vitest - dependency-name: vitest dependency-type: direct:development update-type: version-update:semver-major dependency-group: vitest ... Signed-off-by: dependabot[bot] <[email protected]> * update config * use toHaveBeenCalledOnce/toHaveBeenCalledExactlyOnceWith --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicolas Stepien <[email protected]>
1 parent fc63ace commit 3703f4f

10 files changed

+80
-84
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@
7474
"@typescript-eslint/eslint-plugin": "^8.19.1",
7575
"@typescript-eslint/parser": "^8.19.1",
7676
"@vitejs/plugin-react": "^4.3.4",
77-
"@vitest/browser": "^2.1.8",
78-
"@vitest/coverage-v8": "^2.1.8",
77+
"@vitest/browser": "^3.0.2",
78+
"@vitest/coverage-v8": "^3.0.2",
7979
"@vitest/eslint-plugin": "^1.1.24",
8080
"@wyw-in-js/rollup": "^0.5.0",
8181
"@wyw-in-js/vite": "^0.5.0",
@@ -100,7 +100,7 @@
100100
"rolldown": "^1.0.0-beta.1",
101101
"typescript": "~5.7.2",
102102
"vite": "^6.0.3",
103-
"vitest": "^2.1.8",
103+
"vitest": "^3.0.2",
104104
"vitest-browser-react": "^0.0.4"
105105
},
106106
"peerDependencies": {

test/browser/column/colSpan.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ describe('colSpan', () => {
176176
const spy = vi.spyOn(window.HTMLElement.prototype, 'scrollIntoView');
177177
const testScrollIntoView = () => {
178178
expect(spy).toHaveBeenCalled();
179-
spy.mockReset();
179+
spy.mockClear();
180180
};
181181
await navigate(3);
182182
testScrollIntoView();

test/browser/column/draggable.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ test('draggable columns', async () => {
3838
expect(onColumnsReorder).not.toHaveBeenCalled();
3939

4040
await userEvent.dragAndDrop(cell2, cell4);
41-
expect(onColumnsReorder).toHaveBeenCalledWith('col2', 'col4');
42-
onColumnsReorder.mockReset();
41+
expect(onColumnsReorder).toHaveBeenCalledExactlyOnceWith('col2', 'col4');
42+
onColumnsReorder.mockClear();
4343

4444
// should not call `onColumnsReorder` if drag and drop elements are the same
4545
await userEvent.dragAndDrop(cell2, cell2);

test/browser/column/renderCell.test.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ describe('Custom cell renderer', () => {
9595
await expect.element(cell).toHaveTextContent('value: 1');
9696
await userEvent.click(page.getByRole('button'));
9797
await expect.element(cell).toHaveTextContent('value: 2');
98-
expect(onChange).toHaveBeenCalledTimes(1);
99-
expect(onChange).toHaveBeenCalledWith([{ id: 2 }], {
98+
expect(onChange).toHaveBeenCalledExactlyOnceWith([{ id: 2 }], {
10099
column: {
101100
...column,
102101
frozen: false,

test/browser/column/renderEditCell.test.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ describe('Editor', () => {
8080
// too quickly for outside clicks to be detected
8181
await userEvent.click(saveButton, { delay: 10 });
8282

83-
expect(onSave).toHaveBeenCalledTimes(1);
84-
expect(onSave).toHaveBeenCalledWith([
83+
expect(onSave).toHaveBeenCalledExactlyOnceWith([
8584
{ col1: 1234, col2: 'a1' },
8685
{ col1: 2, col2: 'a2' }
8786
]);

test/browser/column/resizable.test.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ test('should resize column when dragging the handle', async () => {
7272
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 200px' });
7373
await resize({ column: col2.element(), resizeBy: -50 });
7474
await expect.element(grid).toHaveStyle({ gridTemplateColumns: '100px 150px' });
75-
expect(onColumnResize).toHaveBeenCalledTimes(1);
76-
expect(onColumnResize).toHaveBeenCalledWith(expect.objectContaining(columns[1]), 150);
75+
expect(onColumnResize).toHaveBeenCalledExactlyOnceWith(expect.objectContaining(columns[1]), 150);
7776
});
7877

7978
test('should use the maxWidth if specified', async () => {

test/browser/copyPaste.test.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ test('should allow copy if only onCopy is specified', async () => {
100100
await userEvent.click(getCellsAtRowIndexOld(0)[0]);
101101
await copySelectedCell();
102102
await expect.element(getSelectedCell()).toHaveClass(copyCellClassName);
103-
expect(onCopySpy).toHaveBeenCalledWith({
103+
expect(onCopySpy).toHaveBeenCalledExactlyOnceWith({
104104
sourceRow: initialRows[0],
105105
sourceColumnKey: 'col'
106106
});
@@ -119,22 +119,22 @@ test('should allow copy/paste if only onPaste is specified', async () => {
119119
await userEvent.keyboard('{arrowdown}');
120120
await pasteSelectedCell();
121121
expect(getCellsAtRowIndexOld(1)[0]).toHaveTextContent('a1');
122-
expect(onPasteSpy).toHaveBeenCalledTimes(1);
122+
expect(onPasteSpy).toHaveBeenCalledOnce();
123123
});
124124

125125
test('should allow copy/paste if both onPaste & onCopy is specified', async () => {
126126
setup(true, true);
127127
await userEvent.click(getCellsAtRowIndexOld(0)[0]);
128128
await copySelectedCell();
129129
await expect.element(getSelectedCell()).toHaveClass(copyCellClassName);
130-
expect(onCopySpy).toHaveBeenCalledWith({
130+
expect(onCopySpy).toHaveBeenCalledExactlyOnceWith({
131131
sourceRow: initialRows[0],
132132
sourceColumnKey: 'col'
133133
});
134134
await userEvent.keyboard('{arrowdown}');
135135
await pasteSelectedCell();
136136
expect(getCellsAtRowIndexOld(1)[0]).toHaveTextContent('a1');
137-
expect(onPasteSpy).toHaveBeenCalledTimes(1);
137+
expect(onPasteSpy).toHaveBeenCalledOnce();
138138
});
139139

140140
test('should not allow paste on readonly cells', async () => {

test/browser/events.test.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ describe('Events', () => {
128128

129129
// Selected by click
130130
await userEvent.click(getCellsAtRowIndexOld(0)[1]);
131-
expect(onSelectedCellChange).toHaveBeenCalledWith({
131+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
132132
column: expect.objectContaining(columns[1]),
133133
row: rows[0],
134134
rowIdx: 0
@@ -137,7 +137,7 @@ describe('Events', () => {
137137

138138
// Selected by double click
139139
await userEvent.dblClick(getCellsAtRowIndexOld(0)[0]);
140-
expect(onSelectedCellChange).toHaveBeenCalledWith({
140+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
141141
column: expect.objectContaining(columns[0]),
142142
row: rows[0],
143143
rowIdx: 0
@@ -146,7 +146,7 @@ describe('Events', () => {
146146

147147
// Selected by right-click
148148
await userEvent.pointer({ target: getCellsAtRowIndexOld(1)[0], keys: '[MouseRight]' });
149-
expect(onSelectedCellChange).toHaveBeenCalledWith({
149+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
150150
column: expect.objectContaining(columns[0]),
151151
row: rows[1],
152152
rowIdx: 1
@@ -155,7 +155,7 @@ describe('Events', () => {
155155

156156
// Selected by ←↑→↓ keys
157157
await userEvent.keyboard('{ArrowUp}');
158-
expect(onSelectedCellChange).toHaveBeenCalledWith({
158+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
159159
column: expect.objectContaining(columns[0]),
160160
row: rows[0],
161161
rowIdx: 0
@@ -164,7 +164,7 @@ describe('Events', () => {
164164

165165
// Selected by tab key
166166
await userEvent.keyboard('{Tab}');
167-
expect(onSelectedCellChange).toHaveBeenCalledWith({
167+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
168168
column: expect.objectContaining(columns[1]),
169169
row: rows[0],
170170
rowIdx: 0
@@ -173,11 +173,12 @@ describe('Events', () => {
173173

174174
// go to the header row
175175
await userEvent.keyboard('{ArrowUp}');
176-
expect(onSelectedCellChange).toHaveBeenCalledWith({
176+
expect(onSelectedCellChange).toHaveBeenLastCalledWith({
177177
column: expect.objectContaining(columns[1]),
178178
row: undefined,
179179
rowIdx: -1
180180
});
181+
expect(onSelectedCellChange).toHaveBeenCalledTimes(6);
181182
});
182183
});
183184

vite.config.ts

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,37 @@ import react from '@vitejs/plugin-react';
33
import wyw from '@wyw-in-js/vite';
44
import browserslist from 'browserslist';
55
import { defineConfig } from 'vite';
6+
import type { BrowserCommand } from 'vitest/node';
67

78
const isCI = process.env.CI === 'true';
89
const isTest = process.env.NODE_ENV === 'test';
910

11+
// TODO: remove when `userEvent.pointer` is supported
12+
const resizeColumn: BrowserCommand<[resizeBy: number]> = async (context, resizeBy) => {
13+
const page = context.page;
14+
const frame = await context.frame();
15+
const resizeHandle = frame.locator('[role="columnheader"][aria-colindex="2"] div');
16+
const { x, y } = (await resizeHandle.boundingBox())!;
17+
await resizeHandle.hover({
18+
position: { x: 5, y: 5 }
19+
});
20+
await page.mouse.down();
21+
await page.mouse.move(x + resizeBy + 5, y);
22+
await page.mouse.up();
23+
};
24+
25+
// TODO: remove when `userEvent.pointer` is supported
26+
const dragFill: BrowserCommand<[from: string, to: string]> = async (context, from, to) => {
27+
const page = context.page;
28+
const frame = await context.frame();
29+
await frame.getByRole('gridcell', { name: from }).click();
30+
await frame.locator('.rdg-cell-drag-handle').hover();
31+
await page.mouse.down();
32+
const toCell = frame.getByRole('gridcell', { name: to });
33+
await toCell.hover();
34+
await page.mouse.up();
35+
};
36+
1037
export default defineConfig(({ command }) => ({
1138
base: '/react-data-grid/',
1239
cacheDir: '.cache/vite',
@@ -17,9 +44,6 @@ export default defineConfig(({ command }) => ({
1744
sourcemap: true,
1845
reportCompressedSize: false
1946
},
20-
json: {
21-
stringify: true
22-
},
2347
plugins: [
2448
!isTest &&
2549
TanStackRouterVite({
@@ -50,10 +74,41 @@ export default defineConfig(({ command }) => ({
5074
reporter: ['json']
5175
},
5276
testTimeout: isCI ? 10000 : 5000,
53-
reporters: ['basic'],
5477
restoreMocks: true,
5578
sequence: {
5679
shuffle: true
57-
}
80+
},
81+
workspace: [
82+
{
83+
extends: true,
84+
test: {
85+
name: 'browser',
86+
include: ['test/browser/**/*.test.*'],
87+
browser: {
88+
enabled: true,
89+
provider: 'playwright',
90+
instances: [
91+
{
92+
browser: 'chromium'
93+
}
94+
],
95+
commands: { resizeColumn, dragFill },
96+
viewport: { width: 1920, height: 1080 },
97+
headless: true,
98+
screenshotFailures: process.env.CI !== 'true'
99+
},
100+
setupFiles: ['test/setup.ts', 'test/setupBrowser.ts']
101+
}
102+
},
103+
{
104+
extends: true,
105+
test: {
106+
name: 'node',
107+
include: ['test/node/**/*.test.*'],
108+
environment: 'node',
109+
setupFiles: ['test/setup.ts']
110+
}
111+
}
112+
]
58113
}
59114
}));

vitest.workspace.ts

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)