Kaynağa Gözat

wip(vitest-migration): runtime-dom tests passing + use environmentMatchGlobs

Evan You 3 yıl önce
ebeveyn
işleme
4ee0dad0fe

+ 6 - 5
packages/runtime-dom/__tests__/customElement.spec.ts

@@ -367,11 +367,8 @@ describe('defineCustomElement', () => {
     })
 
     test('emit from within async component wrapper', async () => {
-      const E = defineCustomElement(
-        defineAsyncComponent(
-          () => new Promise<typeof CompDef>(res => res(CompDef as any))
-        )
-      )
+      const p = new Promise<typeof CompDef>(res => res(CompDef as any))
+      const E = defineCustomElement(defineAsyncComponent(() => p))
       customElements.define('my-async-el-emits', E)
       container.innerHTML = `<my-async-el-emits></my-async-el-emits>`
       const e = container.childNodes[0] as VueElement
@@ -379,6 +376,8 @@ describe('defineCustomElement', () => {
       e.addEventListener('my-click', spy)
       // this feels brittle but seems necessary to reach the node in the DOM.
       await customElements.whenDefined('my-async-el-emits')
+      await nextTick()
+      await nextTick()
       e.shadowRoot!.childNodes[0].dispatchEvent(new CustomEvent('click'))
       expect(spy).toHaveBeenCalled()
       expect(spy.mock.calls[0][0]).toMatchObject({
@@ -398,6 +397,8 @@ describe('defineCustomElement', () => {
       const spy = vi.fn()
       e.addEventListener('my-click', spy)
       await customElements.whenDefined('my-async-el-props-emits')
+      await nextTick()
+      await nextTick()
       e.shadowRoot!.childNodes[0].dispatchEvent(new CustomEvent('click'))
       expect(spy).toHaveBeenCalled()
       expect(spy.mock.calls[0][0]).toMatchObject({

+ 3 - 4
packages/runtime-dom/__tests__/patchEvents.spec.ts

@@ -85,15 +85,14 @@ describe(`runtime-dom: events patching`, () => {
     const el = document.createElement('div')
 
     // string should be set as attribute
-    const fn = ((window as any).__globalSpy = vi.fn())
-    patchProp(el, 'onclick', null, '__globalSpy(1)')
+    const fn = ((el as any).spy = vi.fn())
+    patchProp(el, 'onclick', null, 'this.spy(1)')
     el.dispatchEvent(new Event('click'))
     await timeout()
-    delete (window as any).__globalSpy
     expect(fn).toHaveBeenCalledWith(1)
 
     const fn2 = vi.fn()
-    patchProp(el, 'onclick', '__globalSpy(1)', fn2)
+    patchProp(el, 'onclick', 'this.spy(1)', fn2)
     const event = new Event('click')
     el.dispatchEvent(event)
     await timeout()

+ 0 - 3
packages/vue-compat/__tests__/compiler.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi } from 'vitest'
 import Vue from '@vue/compat'
 import { nextTick } from '@vue/runtime-core'

+ 0 - 3
packages/vue-compat/__tests__/componentAsync.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import Vue from '@vue/compat'
 import {
   DeprecationTypes,

+ 0 - 3
packages/vue-compat/__tests__/componentFunctional.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import Vue from '@vue/compat'
 import {
   DeprecationTypes,

+ 0 - 3
packages/vue-compat/__tests__/componentVModel.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import Vue from '@vue/compat'
 import { ComponentOptions } from '../../runtime-core/src/component'
 import { nextTick } from '../../runtime-core/src/scheduler'

+ 0 - 3
packages/vue-compat/__tests__/filters.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import Vue from '@vue/compat'
 import { CompilerDeprecationTypes } from '../../compiler-core/src'
 import {

+ 0 - 3
packages/vue-compat/__tests__/global.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi } from 'vitest'
 import Vue from '@vue/compat'
 import { effect, isReactive } from '@vue/reactivity'

+ 0 - 3
packages/vue-compat/__tests__/globalConfig.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi } from 'vitest'
 import Vue from '@vue/compat'
 import {

+ 0 - 3
packages/vue-compat/__tests__/instance.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi, Mock } from 'vitest'
 import Vue from '@vue/compat'
 import { Slots } from '../../runtime-core/src/componentSlots'

+ 0 - 3
packages/vue-compat/__tests__/misc.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi } from 'vitest'
 import Vue from '@vue/compat'
 import { nextTick } from '../../runtime-core/src/scheduler'

+ 0 - 3
packages/vue-compat/__tests__/options.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { vi } from 'vitest'
 import Vue from '@vue/compat'
 import { nextTick } from '../../runtime-core/src/scheduler'

+ 0 - 3
packages/vue-compat/__tests__/renderFn.spec.ts

@@ -1,6 +1,3 @@
-/**
- * @vitest-environment jsdom
- */
 import { ShapeFlags } from '@vue/shared'
 import Vue from '@vue/compat'
 import { createComponentInstance } from '../../runtime-core/src/component'

+ 2 - 1
vitest.config.ts

@@ -42,6 +42,7 @@ export default defineConfig({
   },
   test: {
     globals: true,
-    setupFiles: 'scripts/setupVitest.ts'
+    setupFiles: 'scripts/setupVitest.ts',
+    environmentMatchGlobs: [['packages/{vue-compat,runtime-dom}/**', 'jsdom']]
   }
 })