Skip to content

Commit ceee60c

Browse files
committed
chore: upgrade Vitest to v4.0.9
Upgrade Vitest from v3.2.4 to v4.0.9 to leverage the latest features and bug fixes. This update includes breaking changes that required adjustments to configuration and test files. Changes: - Update vitest and @vitest/coverage-v8 to v4.0.9 in both apps and packages - Remove deprecated config options (testTransformMode, coverage.all) - Fix ResizeObserver mocks to use function declarations instead of arrow functions (vi.fn() in v4 requires 'function' or 'class' for constructor mocks) All tests pass (53 total: 32 in apps, 21 in packages)
1 parent 671f4fa commit ceee60c

9 files changed

Lines changed: 258 additions & 366 deletions

File tree

apps/solidjs-boilerplate/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"@types/testing-library__jest-dom": "^6.0.0",
3636
"@typescript-eslint/eslint-plugin": "^6.19.0",
3737
"@typescript-eslint/parser": "^6.19.0",
38-
"@vitest/coverage-v8": "^3.2.4",
38+
"@vitest/coverage-v8": "^4.0.0",
3939
"babel-preset-solid": "^1.9.6",
4040
"eslint": "8.57.1",
4141
"eslint-config-airbnb-base": "^15.0.0",
@@ -84,7 +84,7 @@
8484
"vite": "^7.0.2",
8585
"vite-plugin-solid": "^2.11.7",
8686
"vite-tsconfig-paths": "^5.1.4",
87-
"vitest": "^3.2.4"
87+
"vitest": "^4.0.0"
8888
},
8989
"dependencies": {
9090
"@sect/solid-hiding-header": "workspace:*",

apps/solidjs-boilerplate/src/components/modules/PostContent/PostContent.test.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,14 @@ describe('PostContent component', () => {
118118

119119
test('should render post title and body', async () => {
120120
// Mock window.ResizeObserver @ https://vitest.dev/guide/mocking.html#globals
121-
const ResizeObserverMock = vi.fn(() => ({
122-
disconnect: vi.fn(),
123-
observe: vi.fn(),
124-
takeRecords: vi.fn(),
125-
unobserve: vi.fn(),
126-
}));
121+
const ResizeObserverMock = vi.fn(function ResizeObserver() {
122+
return {
123+
disconnect: vi.fn(),
124+
observe: vi.fn(),
125+
takeRecords: vi.fn(),
126+
unobserve: vi.fn(),
127+
};
128+
});
127129
vi.stubGlobal('ResizeObserver', ResizeObserverMock);
128130
// now you can access it as `ResizeObserver` or `window.ResizeObserver`
129131

apps/solidjs-boilerplate/src/components/modules/PostList/PostList.test.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,14 @@ describe('PostList component', () => {
121121

122122
test('should render post titles', async () => {
123123
// Mock window.ResizeObserver @ https://vitest.dev/guide/mocking.html#globals
124-
const ResizeObserverMock = vi.fn(() => ({
125-
disconnect: vi.fn(),
126-
observe: vi.fn(),
127-
takeRecords: vi.fn(),
128-
unobserve: vi.fn(),
129-
}));
124+
const ResizeObserverMock = vi.fn(function ResizeObserver() {
125+
return {
126+
disconnect: vi.fn(),
127+
observe: vi.fn(),
128+
takeRecords: vi.fn(),
129+
unobserve: vi.fn(),
130+
};
131+
});
130132
vi.stubGlobal('ResizeObserver', ResizeObserverMock);
131133
// now you can access it as `ResizeObserver` or `window.ResizeObserver`
132134

apps/solidjs-boilerplate/vite.config.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* eslint-disable import/no-extraneous-dependencies */
22
/// <reference types="vitest" />
3+
import tailwindcss from '@tailwindcss/vite';
34
import solidPlugin from 'vite-plugin-solid';
45
import tsconfigPaths from 'vite-tsconfig-paths';
56
import { defineConfig } from 'vitest/config';
6-
import tailwindcss from '@tailwindcss/vite';
77

88
export default defineConfig({
99
plugins: [solidPlugin(), tsconfigPaths(), tailwindcss()],
@@ -28,12 +28,8 @@ export default defineConfig({
2828
},
2929
test: {
3030
environment: 'jsdom',
31-
testTransformMode: {
32-
web: ['/.[jt]sx?$/'],
33-
},
3431
setupFiles: './vitest.setup.ts',
3532
coverage: {
36-
all: false,
3733
provider: 'v8',
3834
reporter: ['text', 'json', 'html', 'lcov'],
3935
exclude: [
@@ -73,7 +69,7 @@ export default defineConfig({
7369
'**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*',
7470
'**/e2e/**', // Additional e2e directory for Playwright.
7571
'**/mocks/**',
76-
]
72+
],
7773
},
7874
define: process.env.VITEST ? {} : { global: 'window' },
7975
});

apps/solidjs-boilerplate/vitest.setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable import/no-extraneous-dependencies */
22
import '@testing-library/jest-dom/vitest';
3-
import { beforeAll, afterEach, afterAll } from 'vitest';
43
import { cleanup } from '@solidjs/testing-library';
4+
import { beforeAll, afterEach, afterAll } from 'vitest';
55

66
import { server } from '@/mocks/server';
77

packages/solid-hiding-header/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
"@types/testing-library__jest-dom": "^6.0.0",
8686
"@typescript-eslint/eslint-plugin": "^6.19.0",
8787
"@typescript-eslint/parser": "^6.19.0",
88-
"@vitest/coverage-v8": "^3.2.4",
88+
"@vitest/coverage-v8": "^4.0.0",
8989
"babel-preset-solid": "^1.9.6",
9090
"eslint": "8.57.1",
9191
"eslint-config-airbnb-base": "^15.0.0",
@@ -119,7 +119,7 @@
119119
"vite": "^7.0.2",
120120
"vite-plugin-solid": "^2.11.7",
121121
"vite-tsconfig-paths": "^5.1.4",
122-
"vitest": "^3.2.4"
122+
"vitest": "^4.0.0"
123123
},
124124
"keywords": [
125125
"solid",

packages/solid-hiding-header/tests/index.test.tsx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ import {
1212
describe('HidingHeader component', () => {
1313
beforeAll(() => {
1414
// Mock window.ResizeObserver @ https://vitest.dev/guide/mocking.html#globals
15-
const ResizeObserverMock = vi.fn(() => ({
16-
disconnect: vi.fn(),
17-
observe: vi.fn(),
18-
takeRecords: vi.fn(),
19-
unobserve: vi.fn(),
20-
}));
15+
const ResizeObserverMock = vi.fn(function ResizeObserver() {
16+
return {
17+
disconnect: vi.fn(),
18+
observe: vi.fn(),
19+
takeRecords: vi.fn(),
20+
unobserve: vi.fn(),
21+
};
22+
});
2123
vi.stubGlobal('ResizeObserver', ResizeObserverMock);
2224
// now you can access it as `ResizeObserver` or `window.ResizeObserver`
2325
});
@@ -228,12 +230,14 @@ describe('HidingHeader component', () => {
228230

229231
describe('HidingHeader hooks', () => {
230232
beforeAll(() => {
231-
const ResizeObserverMock = vi.fn(() => ({
232-
disconnect: vi.fn(),
233-
observe: vi.fn(),
234-
takeRecords: vi.fn(),
235-
unobserve: vi.fn(),
236-
}));
233+
const ResizeObserverMock = vi.fn(function ResizeObserver() {
234+
return {
235+
disconnect: vi.fn(),
236+
observe: vi.fn(),
237+
takeRecords: vi.fn(),
238+
unobserve: vi.fn(),
239+
};
240+
});
237241
vi.stubGlobal('ResizeObserver', ResizeObserverMock);
238242
});
239243

packages/solid-hiding-header/vite.config.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,8 @@ export default defineConfig({
2727
},
2828
test: {
2929
environment: 'jsdom',
30-
testTransformMode: {
31-
web: ['/.[jt]sx?$/'],
32-
},
3330
setupFiles: './vitest.setup.ts',
3431
coverage: {
35-
all: false,
3632
provider: 'v8',
3733
reporter: ['text', 'json', 'html', 'lcov'],
3834
},

0 commit comments

Comments
 (0)