From 8867bb259a993297776f3c5e190bbce1b7d92ce2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 26 Jan 2023 15:25:55 +0800 Subject: [PATCH] wip(vitest-migration): reactivity tests passing --- package.json | 1 + .../compiler-core/__tests__/parse.spec.ts | 7 +- .../compiler-core/__tests__/transform.spec.ts | 11 +- .../transforms/transformElement.spec.ts | 3 +- .../transforms/transformExpressions.spec.ts | 3 +- .../transforms/transformSlotOutlet.spec.ts | 3 +- .../__tests__/transforms/vBind.spec.ts | 3 +- .../__tests__/transforms/vFor.spec.ts | 13 +- .../__tests__/transforms/vIf.spec.ts | 7 +- .../__tests__/transforms/vModel.spec.ts | 13 +- .../__tests__/transforms/vOn.spec.ts | 5 +- .../__tests__/transforms/vSlot.spec.ts | 9 +- .../__tests__/transforms/Transition.spec.ts | 3 +- .../__tests__/transforms/vHtml.spec.ts | 5 +- .../__tests__/transforms/vModel.spec.ts | 9 +- .../__tests__/transforms/vShow.spec.ts | 3 +- .../__tests__/transforms/vText.spec.ts | 5 +- .../reactivityTransform.spec.ts.snap | 2 +- .../__tests__/collections/Map.spec.ts | 9 +- .../__tests__/collections/Set.spec.ts | 7 +- .../__tests__/collections/WeakMap.spec.ts | 5 +- .../__tests__/collections/WeakSet.spec.ts | 3 +- .../reactivity/__tests__/computed.spec.ts | 15 +- .../__tests__/deferredComputed.spec.ts | 31 +- packages/reactivity/__tests__/effect.spec.ts | 57 +-- .../reactivity/__tests__/effectScope.spec.ts | 11 +- .../__tests__/reactiveArray.spec.ts | 7 +- packages/reactivity/__tests__/ref.spec.ts | 5 +- .../__tests__/shallowReactive.spec.ts | 5 +- .../__tests__/apiAsyncComponent.spec.ts | 37 +- .../__tests__/apiCreateApp.spec.ts | 13 +- .../__tests__/apiLifecycle.spec.ts | 25 +- .../runtime-core/__tests__/apiOptions.spec.ts | 23 +- .../__tests__/apiSetupContext.spec.ts | 3 +- .../__tests__/apiSetupHelpers.spec.ts | 5 +- .../runtime-core/__tests__/apiWatch.spec.ts | 51 +-- .../__tests__/componentEmits.spec.ts | 47 +-- .../__tests__/componentProps.spec.ts | 7 +- .../__tests__/componentPublicInstance.spec.ts | 3 +- .../__tests__/componentSlots.spec.ts | 3 +- .../components/BaseTransition.spec.ts | 27 +- .../__tests__/components/KeepAlive.spec.ts | 71 ++-- .../__tests__/components/Suspense.spec.ts | 15 +- .../__tests__/components/Teleport.spec.ts | 5 +- .../runtime-core/__tests__/directives.spec.ts | 35 +- .../__tests__/errorHandling.spec.ts | 39 +- packages/runtime-core/__tests__/hmr.spec.ts | 21 +- .../runtime-core/__tests__/hydration.spec.ts | 25 +- .../rendererAttrsFallthrough.spec.ts | 29 +- .../__tests__/rendererComponent.spec.ts | 11 +- .../__tests__/rendererOptimizedMode.spec.ts | 13 +- .../__tests__/rendererTemplateRef.spec.ts | 15 +- .../runtime-core/__tests__/scheduler.spec.ts | 7 +- packages/runtime-core/__tests__/vnode.spec.ts | 3 +- .../runtime-core/__tests__/vnodeHooks.spec.ts | 25 +- packages/runtime-core/src/apiLifecycle.ts | 2 +- packages/runtime-core/src/component.ts | 18 +- packages/runtime-core/src/enums.ts | 16 + packages/runtime-core/src/errorHandling.ts | 5 +- .../runtime-dom/__tests__/createApp.spec.ts | 3 +- .../__tests__/customElement.spec.ts | 15 +- .../__tests__/customizedBuiltIn.spec.ts | 5 +- .../__tests__/directives/vModel.spec.ts | 9 +- .../__tests__/directives/vOn.spec.ts | 17 +- .../runtime-dom/__tests__/patchEvents.spec.ts | 37 +- .../runtime-dom/__tests__/patchProps.spec.ts | 7 +- .../runtime-dom/__tests__/patchStyle.spec.ts | 3 +- .../server-renderer/__tests__/render.spec.ts | 9 +- .../__tests__/ssrComputed.spec.ts | 3 +- .../__tests__/ssrSuspense.spec.ts | 9 +- .../vue-compat/__tests__/compiler.spec.ts | 3 +- packages/vue-compat/__tests__/global.spec.ts | 11 +- .../vue-compat/__tests__/globalConfig.spec.ts | 5 +- .../vue-compat/__tests__/instance.spec.ts | 11 +- packages/vue-compat/__tests__/misc.spec.ts | 15 +- packages/vue-compat/__tests__/options.spec.ts | 9 +- packages/vue/__tests__/Transition.spec.ts | 95 ++--- .../vue/__tests__/TransitionGroup.spec.ts | 19 +- .../vue/__tests__/customElementCasing.spec.ts | 5 +- packages/vue/__tests__/index.spec.ts | 17 +- pnpm-lock.yaml | 364 ++++++++++++++++++ scripts/setupVitest.ts | 94 +++++ vitest.config.ts | 43 +++ 83 files changed, 1122 insertions(+), 545 deletions(-) create mode 100644 packages/runtime-core/src/enums.ts create mode 100644 scripts/setupVitest.ts create mode 100644 vitest.config.ts diff --git a/package.json b/package.json index 9f1440efa..faf4dcd92 100644 --- a/package.json +++ b/package.json @@ -102,6 +102,7 @@ "tslib": "^2.4.0", "typescript": "^4.8.0", "vite": "^4.0.4", + "vitest": "^0.28.2", "vue": "workspace:*" } } diff --git a/packages/compiler-core/__tests__/parse.spec.ts b/packages/compiler-core/__tests__/parse.spec.ts index c4e1a3f2f..f86b91608 100644 --- a/packages/compiler-core/__tests__/parse.spec.ts +++ b/packages/compiler-core/__tests__/parse.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { ParserOptions } from '../src/options' import { baseParse, TextModes } from '../src/parse' import { ErrorCodes } from '../src/errors' @@ -31,7 +32,7 @@ describe('compiler: parse', () => { }) test('simple text with invalid end tag', () => { - const onError = jest.fn() + const onError = vi.fn() const ast = baseParse('some text', { onError }) @@ -1844,7 +1845,7 @@ describe('compiler: parse', () => { baseParse(`
\n\n
\n`) }).toThrow('Element is missing end tag.') - const spy = jest.fn() + const spy = vi.fn() const ast = baseParse(`
\n\n
\n`, { onError: spy }) @@ -3034,7 +3035,7 @@ foo c => `\\x0${c.codePointAt(0)!.toString(16)};` ), () => { - const spy = jest.fn() + const spy = vi.fn() const ast = baseParse(code, { getNamespace: (tag, parent) => { const ns = parent ? parent.ns : Namespaces.HTML diff --git a/packages/compiler-core/__tests__/transform.spec.ts b/packages/compiler-core/__tests__/transform.spec.ts index 89f0ecda5..915ae7a60 100644 --- a/packages/compiler-core/__tests__/transform.spec.ts +++ b/packages/compiler-core/__tests__/transform.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { baseParse } from '../src/parse' import { transform, NodeTransform } from '../src/transform' import { @@ -88,7 +89,7 @@ describe('compiler: transform', () => { ) } } - const spy = jest.fn(plugin) + const spy = vi.fn(plugin) transform(ast, { nodeTransforms: [spy] }) @@ -113,7 +114,7 @@ describe('compiler: transform', () => { context.removeNode() } } - const spy = jest.fn(plugin) + const spy = vi.fn(plugin) transform(ast, { nodeTransforms: [spy] }) @@ -141,7 +142,7 @@ describe('compiler: transform', () => { context.removeNode(context.parent!.children[0]) } } - const spy = jest.fn(plugin) + const spy = vi.fn(plugin) transform(ast, { nodeTransforms: [spy] }) @@ -168,7 +169,7 @@ describe('compiler: transform', () => { context.removeNode(context.parent!.children[1]) } } - const spy = jest.fn(plugin) + const spy = vi.fn(plugin) transform(ast, { nodeTransforms: [spy] }) @@ -209,7 +210,7 @@ describe('compiler: transform', () => { createCompilerError(ErrorCodes.X_INVALID_END_TAG, node.loc) ) } - const spy = jest.fn() + const spy = vi.fn() transform(ast, { nodeTransforms: [plugin], onError: spy diff --git a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts index 06fd2e12b..1c90e33fc 100644 --- a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { CompilerOptions, baseParse as parse, @@ -531,7 +532,7 @@ describe('compiler: element transform', () => { }) test('error on v-bind with no argument', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithElementTransform(`
`, { onError }) expect(onError.mock.calls[0]).toMatchObject([ { diff --git a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts index 4db7aa619..b9593c4a4 100644 --- a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { baseParse as parse, transform, @@ -395,7 +396,7 @@ describe('compiler: expression transform', () => { }) test('should handle parse error', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithExpressionTransform(`{{ a( }}`, { onError }) expect(onError.mock.calls[0][0].message).toMatch( `Error parsing JavaScript expression: Unexpected token` diff --git a/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts b/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts index fd5bd09c0..e3863f1ed 100644 --- a/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformSlotOutlet.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { CompilerOptions, baseParse as parse, @@ -369,7 +370,7 @@ describe('compiler: transform outlets', () => { }) test(`error on unexpected custom directive on `, () => { - const onError = jest.fn() + const onError = vi.fn() const source = `` parseWithSlots(source, { onError }) const index = source.indexOf('v-foo') diff --git a/packages/compiler-core/__tests__/transforms/vBind.spec.ts b/packages/compiler-core/__tests__/transforms/vBind.spec.ts index 27e0ae10c..ea5bdcf3d 100644 --- a/packages/compiler-core/__tests__/transforms/vBind.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vBind.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { baseParse as parse, transform, @@ -99,7 +100,7 @@ describe('compiler: transform v-bind', () => { }) test('should error if no expression', () => { - const onError = jest.fn() + const onError = vi.fn() const node = parseWithVBind(`
`, { onError }) const props = (node.codegenNode as VNodeCall).props as ObjectExpression expect(onError.mock.calls[0][0]).toMatchObject({ diff --git a/packages/compiler-core/__tests__/transforms/vFor.spec.ts b/packages/compiler-core/__tests__/transforms/vFor.spec.ts index c22b364aa..b07272ef7 100644 --- a/packages/compiler-core/__tests__/transforms/vFor.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vFor.spec.ts @@ -1,3 +1,4 @@ +import { vi } from 'vitest' import { baseParse as parse } from '../../src/parse' import { transform } from '../../src/transform' import { transformIf } from '../../src/transforms/vIf' @@ -206,7 +207,7 @@ describe('compiler: v-for', () => { describe('errors', () => { test('missing expression', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithForTransform('', { onError }) expect(onError).toHaveBeenCalledTimes(1) @@ -218,7 +219,7 @@ describe('compiler: v-for', () => { }) test('empty expression', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithForTransform('', { onError }) expect(onError).toHaveBeenCalledTimes(1) @@ -230,7 +231,7 @@ describe('compiler: v-for', () => { }) test('invalid expression', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithForTransform('', { onError }) expect(onError).toHaveBeenCalledTimes(1) @@ -242,7 +243,7 @@ describe('compiler: v-for', () => { }) test('missing source', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithForTransform('', { onError }) expect(onError).toHaveBeenCalledTimes(1) @@ -254,7 +255,7 @@ describe('compiler: v-for', () => { }) test('missing value', () => { - const onError = jest.fn() + const onError = vi.fn() parseWithForTransform('', { onError }) expect(onError).toHaveBeenCalledTimes(1) @@ -266,7 +267,7 @@ describe('compiler: v-for', () => { }) test('