Browse Source

chore(deps): upgrade vitest to v4 (#14430)

edison 2 months ago
parent
commit
4c47256b6d

+ 3 - 3
package.json

@@ -59,7 +59,7 @@
     ]
   },
   "engines": {
-    "node": ">=18.12.0"
+    "node": ">=20.0.0"
   },
   "devDependencies": {
     "@babel/parser": "catalog:",
@@ -74,7 +74,7 @@
     "@types/node": "^24.10.9",
     "@types/semver": "^7.7.1",
     "@types/serve-handler": "^6.1.4",
-    "@vitest/coverage-v8": "^3.2.4",
+    "@vitest/coverage-v8": "^4.0.18",
     "@vitest/eslint-plugin": "^1.6.6",
     "@vue/consolidate": "1.0.0",
     "conventional-changelog-cli": "^5.0.0",
@@ -110,6 +110,6 @@
     "typescript": "~5.6.2",
     "typescript-eslint": "^8.54.0",
     "vite": "catalog:",
-    "vitest": "^3.2.4"
+    "vitest": "^4.0.18"
   }
 }

+ 5 - 1
packages/reactivity/__tests__/reactiveArray.spec.ts

@@ -95,9 +95,13 @@ describe('reactivity/reactive/Array', () => {
     const identityMethods = ['includes', 'indexOf', 'lastIndexOf'] as const
 
     function instrumentArr(rawTarget: any[]) {
+      const mutableTarget = rawTarget as Record<
+        (typeof identityMethods)[number],
+        any
+      >
       identityMethods.forEach(key => {
         const spy = vi.fn(rawTarget[key] as any)
-        rawTarget[key] = spy
+        mutableTarget[key] = spy
       })
     }
 

+ 1 - 2
packages/runtime-core/__tests__/componentPublicInstance.spec.ts

@@ -341,11 +341,10 @@ describe('component: proxy', () => {
     const spy = vi.spyOn(instanceProxy, 'toggle')
     expect(getCalledTimes).toEqual(3)
 
-    // vitest does not cache the spy like jest do
     const v3 = instanceProxy.toggle()
     expect(v3).toEqual('b')
     expect(spy).toHaveBeenCalled()
-    expect(getCalledTimes).toEqual(4)
+    expect(getCalledTimes).toEqual(3)
   })
 
   test('defineProperty on proxy property with value descriptor', () => {

+ 15 - 12
packages/runtime-core/__tests__/components/BaseTransition.spec.ts

@@ -14,7 +14,7 @@ import {
 } from '@vue/runtime-test'
 
 function mount(
-  props: BaseTransitionProps,
+  props: BaseTransitionProps<TestElement>,
   slot: () => any,
   withKeepAlive = false,
 ) {
@@ -35,7 +35,10 @@ function mount(
   return { root, unmount }
 }
 
-function mockProps(extra: BaseTransitionProps = {}, withKeepAlive = false) {
+function mockProps(
+  extra: BaseTransitionProps<TestElement> = {},
+  withKeepAlive = false,
+) {
   const cbs: {
     doneEnter: Record<string, () => void>
     doneLeave: Record<string, () => void>
@@ -43,7 +46,7 @@ function mockProps(extra: BaseTransitionProps = {}, withKeepAlive = false) {
     doneEnter: {},
     doneLeave: {},
   }
-  const props: BaseTransitionProps = {
+  const props: BaseTransitionProps<TestElement> = {
     onBeforeEnter: vi.fn(el => {
       if (!extra.persisted && !withKeepAlive) {
         expect(el.parentNode).toBeNull()
@@ -52,20 +55,20 @@ function mockProps(extra: BaseTransitionProps = {}, withKeepAlive = false) {
     onEnter: vi.fn((el, done) => {
       cbs.doneEnter[serialize(el as TestElement)] = done
     }),
-    onAfterEnter: vi.fn(),
-    onEnterCancelled: vi.fn(),
-    onBeforeLeave: vi.fn(),
+    onAfterEnter: vi.fn<(el: TestElement) => void>(),
+    onEnterCancelled: vi.fn<(el: TestElement) => void>(),
+    onBeforeLeave: vi.fn<(el: TestElement) => void>(),
     onLeave: vi.fn((el, done) => {
       cbs.doneLeave[serialize(el as TestElement)] = done
     }),
-    onAfterLeave: vi.fn(),
-    onLeaveCancelled: vi.fn(),
-    onBeforeAppear: vi.fn(),
+    onAfterLeave: vi.fn<(el: TestElement) => void>(),
+    onLeaveCancelled: vi.fn<(el: TestElement) => void>(),
+    onBeforeAppear: vi.fn<(el: TestElement) => void>(),
     onAppear: vi.fn((el, done) => {
       cbs.doneEnter[serialize(el as TestElement)] = done
     }),
-    onAfterAppear: vi.fn(),
-    onAppearCancelled: vi.fn(),
+    onAfterAppear: vi.fn<(el: TestElement) => void>(),
+    onAppearCancelled: vi.fn<(el: TestElement) => void>(),
     ...extra,
   }
   return {
@@ -75,7 +78,7 @@ function mockProps(extra: BaseTransitionProps = {}, withKeepAlive = false) {
 }
 
 function assertCalls(
-  props: BaseTransitionProps,
+  props: BaseTransitionProps<TestElement>,
   calls: Record<string, number>,
 ) {
   Object.keys(calls).forEach(key => {

+ 8 - 8
packages/runtime-core/__tests__/vnodeHooks.spec.ts

@@ -40,8 +40,8 @@ describe('renderer: vnode hooks', () => {
 
   test('should work on element', () => {
     const hooks: VNodeProps = {
-      onVnodeBeforeMount: vi.fn(),
-      onVnodeMounted: vi.fn(),
+      onVnodeBeforeMount: vi.fn<(vnode: VNode) => void>(),
+      onVnodeMounted: vi.fn<(vnode: VNode) => void>(),
       onVnodeBeforeUpdate: vi.fn(vnode => {
         expect((vnode.el as TestElement).children[0]).toMatchObject({
           type: TestNodeTypes.TEXT,
@@ -54,8 +54,8 @@ describe('renderer: vnode hooks', () => {
           text: 'bar',
         })
       }),
-      onVnodeBeforeUnmount: vi.fn(),
-      onVnodeUnmounted: vi.fn(),
+      onVnodeBeforeUnmount: vi.fn<(vnode: VNode) => void>(),
+      onVnodeUnmounted: vi.fn<(vnode: VNode) => void>(),
     }
 
     assertHooks(hooks, h('div', hooks, 'foo'), h('div', hooks, 'bar'))
@@ -65,8 +65,8 @@ describe('renderer: vnode hooks', () => {
     const Comp = (props: { msg: string }) => props.msg
 
     const hooks: VNodeProps = {
-      onVnodeBeforeMount: vi.fn(),
-      onVnodeMounted: vi.fn(),
+      onVnodeBeforeMount: vi.fn<(vnode: VNode) => void>(),
+      onVnodeMounted: vi.fn<(vnode: VNode) => void>(),
       onVnodeBeforeUpdate: vi.fn(vnode => {
         expect(vnode.el as TestElement).toMatchObject({
           type: TestNodeTypes.TEXT,
@@ -79,8 +79,8 @@ describe('renderer: vnode hooks', () => {
           text: 'bar',
         })
       }),
-      onVnodeBeforeUnmount: vi.fn(),
-      onVnodeUnmounted: vi.fn(),
+      onVnodeBeforeUnmount: vi.fn<(vnode: VNode) => void>(),
+      onVnodeUnmounted: vi.fn<(vnode: VNode) => void>(),
     }
 
     assertHooks(

File diff suppressed because it is too large
+ 136 - 346
pnpm-lock.yaml


+ 1 - 5
vitest.config.ts

@@ -73,11 +73,7 @@ export default defineConfig({
         test: {
           name: 'e2e',
           environment: 'jsdom',
-          poolOptions: {
-            threads: {
-              singleThread: !!process.env.CI,
-            },
-          },
+          isolate: true,
           include: ['packages/vue/__tests__/e2e/*.spec.ts'],
         },
       },

Some files were not shown because too many files changed in this diff