소스 검색

test: all unit tests except transition passing

Evan You 3 년 전
부모
커밋
fed8c3bfd2

+ 41 - 39
test/unit/modules/observer/observer.spec.ts

@@ -23,11 +23,11 @@ describe('Observer', () => {
 
   it('create on object', () => {
     // on object
-    const obj = {
+    const obj: any = {
       a: {},
       b: {}
     }
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -35,16 +35,16 @@ describe('Observer', () => {
     expect(obj.a.__ob__ instanceof Observer).toBe(true)
     expect(obj.b.__ob__ instanceof Observer).toBe(true)
     // should return existing ob on already observed objects
-    const ob2 = observe(obj)
+    const ob2 = observe(obj)!
     expect(ob2).toBe(ob1)
   })
 
   it('create on null', () => {
     // on null
-    const obj = Object.create(null)
+    const obj: any =Object.create(null)
     obj.a = {}
     obj.b = {}
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -52,13 +52,13 @@ describe('Observer', () => {
     expect(obj.a.__ob__ instanceof Observer).toBe(true)
     expect(obj.b.__ob__ instanceof Observer).toBe(true)
     // should return existing ob on already observed objects
-    const ob2 = observe(obj)
+    const ob2 = observe(obj)!
     expect(ob2).toBe(ob1)
   })
 
   it('create on already observed object', () => {
     // on object
-    const obj = {}
+    const obj: any = {}
     let val = 0
     let getCount = 0
     Object.defineProperty(obj, 'a', {
@@ -71,7 +71,7 @@ describe('Observer', () => {
       set (v) { val = v }
     })
 
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -84,7 +84,7 @@ describe('Observer', () => {
     expect(getCount).toBe(2)
 
     // should return existing ob on already observed objects
-    const ob2 = observe(obj)
+    const ob2 = observe(obj)!
     expect(ob2).toBe(ob1)
 
     // should call underlying setter
@@ -94,14 +94,14 @@ describe('Observer', () => {
 
   it('create on property with only getter', () => {
     // on object
-    const obj = {}
+    const obj: any = {}
     Object.defineProperty(obj, 'a', {
       configurable: true,
       enumerable: true,
       get () { return 123 }
     })
 
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -110,7 +110,7 @@ describe('Observer', () => {
     expect(obj.a).toBe(123)
 
     // should return existing ob on already observed objects
-    const ob2 = observe(obj)
+    const ob2 = observe(obj)!
     expect(ob2).toBe(ob1)
 
     // since there is no setter, you shouldn't be able to write to it
@@ -124,7 +124,7 @@ describe('Observer', () => {
 
   it('create on property with only setter', () => {
     // on object
-    const obj = {}
+    const obj: any ={}
     let val = 10
     Object.defineProperty(obj, 'a', { // eslint-disable-line accessor-pairs
       configurable: true,
@@ -132,7 +132,7 @@ describe('Observer', () => {
       set (v) { val = v }
     })
 
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -141,7 +141,7 @@ describe('Observer', () => {
     expect(obj.a).toBe(undefined)
 
     // should return existing ob on already observed objects
-    const ob2 = observe(obj)
+    const ob2 = observe(obj)!
     expect(ob2).toBe(ob1)
 
     // writes should call the set function
@@ -151,14 +151,14 @@ describe('Observer', () => {
 
   it('create on property which is marked not configurable', () => {
     // on object
-    const obj = {}
+    const obj: any ={}
     Object.defineProperty(obj, 'a', {
       configurable: false,
       enumerable: true,
-      val: 10
+      value: 10
     })
 
-    const ob1 = observe(obj)
+    const ob1 = observe(obj)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(obj)
     expect(obj.__ob__).toBe(ob1)
@@ -166,8 +166,8 @@ describe('Observer', () => {
 
   it('create on array', () => {
     // on object
-    const arr = [{}, {}]
-    const ob1 = observe(arr)
+    const arr: any = [{}, {}]
+    const ob1 = observe(arr)!
     expect(ob1 instanceof Observer).toBe(true)
     expect(ob1.value).toBe(arr)
     expect(arr.__ob__).toBe(ob1)
@@ -177,10 +177,10 @@ describe('Observer', () => {
   })
 
   it('observing object prop change', () => {
-    const obj = { a: { b: 2 }, c: NaN }
-    observe(obj)
+    const obj: any ={ a: { b: 2 }, c: NaN }
+    observe(obj)!
     // mock a watcher!
-    const watcher = {
+    const watcher: any = {
       deps: [],
       addDep (dep) {
         this.deps.push(dep)
@@ -214,7 +214,7 @@ describe('Observer', () => {
   })
 
   it('observing object prop change on defined property', () => {
-    const obj = { val: 2 }
+    const obj: any ={ val: 2 }
     Object.defineProperty(obj, 'a', {
       configurable: true,
       enumerable: true,
@@ -226,7 +226,7 @@ describe('Observer', () => {
       }
     })
 
-    observe(obj)
+    observe(obj)!
     expect(obj.a).toBe(2) // Make sure 'this' is preserved
     obj.a = 3
     expect(obj.val).toBe(3) // make sure 'setter' was called
@@ -235,10 +235,10 @@ describe('Observer', () => {
   })
 
   it('observing set/delete', () => {
-    const obj1 = { a: 1 }
-    const ob1 = observe(obj1)
+    const obj1: any = { a: 1 }
+    const ob1 = observe(obj1) as any
     const dep1 = ob1.dep
-    spyOn(dep1, 'notify')
+    vi.spyOn(dep1, 'notify')
     setProp(obj1, 'b', 2)
     expect(obj1.b).toBe(2)
     expect(dep1.notify.mock.calls.length).toBe(1)
@@ -262,11 +262,11 @@ describe('Observer', () => {
     delProp(obj2, 'a')
     expect(hasOwn(obj2, 'a')).toBe(false)
     // should work on Object.create(null)
-    const obj3 = Object.create(null)
+    const obj3: any = Object.create(null)
     obj3.a = 1
-    const ob3 = observe(obj3)
+    const ob3 = observe(obj3) as any
     const dep3 = ob3.dep
-    spyOn(dep3, 'notify')
+    vi.spyOn(dep3, 'notify')
     setProp(obj3, 'b', 2)
     expect(obj3.b).toBe(2)
     expect(dep3.notify.mock.calls.length).toBe(1)
@@ -274,10 +274,10 @@ describe('Observer', () => {
     expect(hasOwn(obj3, 'a')).toBe(false)
     expect(dep3.notify.mock.calls.length).toBe(2)
     // set and delete non-numeric key on array
-    const arr2 = ['a']
-    const ob2 = observe(arr2)
+    const arr2: any = ['a']
+    const ob2 = observe(arr2) as any
     const dep2 = ob2.dep
-    spyOn(dep2, 'notify')
+    vi.spyOn(dep2, 'notify')
     setProp(arr2, 'b', 2)
     expect(arr2.b).toBe(2)
     expect(dep2.notify.mock.calls.length).toBe(1)
@@ -327,9 +327,9 @@ describe('Observer', () => {
 
   it('observing array mutation', () => {
     const arr: any[] = []
-    const ob = observe(arr)
+    const ob = observe(arr) as any
     const dep = ob.dep
-    spyOn(dep, 'notify')
+    vi.spyOn(dep, 'notify')
     const objs = [{}, {}, {}]
     arr.push(objs[0])
     arr.pop()
@@ -340,25 +340,27 @@ describe('Observer', () => {
     arr.reverse()
     expect(dep.notify.mock.calls.length).toBe(7)
     // inserted elements should be observed
-    objs.forEach(obj => {
+    objs.forEach((obj: any) => {
       expect(obj.__ob__ instanceof Observer).toBe(true)
     })
   })
 
   it('warn set/delete on non valid values', () => {
     try {
+      // @ts-expect-error
       setProp(null, 'foo', 1)
     } catch (e) {}
     expect(`Cannot set reactive property on undefined, null, or primitive value`).toHaveBeenWarned()
 
     try {
+      // @ts-expect-error
       delProp(null, 'foo')
     } catch (e) {}
     expect(`Cannot delete reactive property on undefined, null, or primitive value`).toHaveBeenWarned()
   })
 
   it('should lazy invoke existing getters', () => {
-    const obj = {}
+    const obj: any ={}
     let called = false
     Object.defineProperty(obj, 'getterProp', {
       enumerable: true,
@@ -367,7 +369,7 @@ describe('Observer', () => {
         return 'some value'
       }
     })
-    observe(obj)
+    observe(obj)!
     expect(called).toBe(false)
   })
 })

+ 0 - 0
test/unit/modules/server-compiler/optimizer.spec.ts


+ 18 - 18
test/unit/modules/sfc/sfc-parser.spec.ts

@@ -24,7 +24,7 @@ describe('Single File Component parser', () => {
         <style>nested should be ignored</style>
       </div>
     `)
-    expect(res.template.content.trim()).toBe('<div>hi</div>')
+    expect(res.template!.content.trim()).toBe('<div>hi</div>')
     expect(res.styles.length).toBe(4)
     expect(res.styles[0].src).toBe('./test.css')
     expect(res.styles[1].lang).toBe('stylus')
@@ -33,7 +33,7 @@ describe('Single File Component parser', () => {
     expect(res.styles[2].module).toBe(true)
     expect(res.styles[3].attrs['bool-attr']).toBe(true)
     expect(res.styles[3].attrs['val-attr']).toBe('test')
-    expect(res.script.content.trim()).toBe('export default {}')
+    expect(res.script!.content.trim()).toBe('export default {}')
   })
 
   it('should parse template with closed input', () => {
@@ -43,7 +43,7 @@ describe('Single File Component parser', () => {
       </template>
     `)
 
-    expect(res.template.content.trim()).toBe('<input type="text"/>')
+    expect(res.template!.content.trim()).toBe('<input type="text"/>')
   })
 
   it('should handle nested template', () => {
@@ -52,7 +52,7 @@ describe('Single File Component parser', () => {
         <div><template v-if="ok">hi</template></div>
       </template>
     `)
-    expect(res.template.content.trim()).toBe('<div><template v-if="ok">hi</template></div>')
+    expect(res.template!.content.trim()).toBe('<div><template v-if="ok">hi</template></div>')
   })
 
   it('deindent content', () => {
@@ -71,14 +71,14 @@ describe('Single File Component parser', () => {
     const deindentEnabled = parseComponent(content.trim(), { pad: false, deindent: true })
     const deindentDisabled = parseComponent(content.trim(), { pad: false, deindent: false })
 
-    expect(deindentDefault.template.content).toBe('\n<div></div>\n')
-    expect(deindentDefault.script.content).toBe('\nexport default {}\n')
+    expect(deindentDefault.template!.content).toBe('\n<div></div>\n')
+    expect(deindentDefault.script!.content).toBe('\nexport default {}\n')
     expect(deindentDefault.styles[0].content).toBe('\nh1 { color: red }\n')
-    expect(deindentEnabled.template.content).toBe('\n<div></div>\n')
-    expect(deindentEnabled.script.content).toBe('\nexport default {}\n')
+    expect(deindentEnabled.template!.content).toBe('\n<div></div>\n')
+    expect(deindentEnabled.script!.content).toBe('\nexport default {}\n')
     expect(deindentEnabled.styles[0].content).toBe('\nh1 { color: red }\n')
-    expect(deindentDisabled.template.content).toBe('\n        <div></div>\n      ')
-    expect(deindentDisabled.script.content).toBe('\n        export default {}\n      ')
+    expect(deindentDisabled.template!.content).toBe('\n        <div></div>\n      ')
+    expect(deindentDisabled.script!.content).toBe('\n        export default {}\n      ')
     expect(deindentDisabled.styles[0].content).toBe('\n        h1 { color: red }\n      ')
   })
 
@@ -98,11 +98,11 @@ describe('Single File Component parser', () => {
     const padLine = parseComponent(content.trim(), { pad: 'line' })
     const padSpace = parseComponent(content.trim(), { pad: 'space' })
 
-    expect(padDefault.script.content).toBe(Array(3 + 1).join('//\n') + '\nexport default {}\n')
+    expect(padDefault.script!.content).toBe(Array(3 + 1).join('//\n') + '\nexport default {}\n')
     expect(padDefault.styles[0].content).toBe(Array(6 + 1).join('\n') + '\nh1 { color: red }\n')
-    expect(padLine.script.content).toBe(Array(3 + 1).join('//\n') + '\nexport default {}\n')
+    expect(padLine.script!.content).toBe(Array(3 + 1).join('//\n') + '\nexport default {}\n')
     expect(padLine.styles[0].content).toBe(Array(6 + 1).join('\n') + '\nh1 { color: red }\n')
-    expect(padSpace.script.content).toBe(`<template>
+    expect(padSpace.script!.content).toBe(`<template>
         <div></div>
       </template>
       <script>`.replace(/./g, ' ') + '\nexport default {}\n')
@@ -122,7 +122,7 @@ describe('Single File Component parser', () => {
           h1(v-if='1 < 2') hello
       </template>
     `)
-    expect(res.template.content.trim()).toBe(`div\n  h1(v-if='1 < 2') hello`)
+    expect(res.template!.content.trim()).toBe(`div\n  h1(v-if='1 < 2') hello`)
   })
 
   it('should handle component contains "<" only', () => {
@@ -131,7 +131,7 @@ describe('Single File Component parser', () => {
         <span><</span>
       </template>
     `)
-    expect(res.template.content.trim()).toBe(`<span><</span>`)
+    expect(res.template!.content.trim()).toBe(`<span><</span>`)
   })
 
   it('should handle custom blocks without parsing them', () => {
@@ -195,17 +195,17 @@ describe('Single File Component parser', () => {
       </template>
     </div>`
     const res = parseComponent(`<template>${raw}</template>`)
-    expect(res.template.content.trim()).toBe(raw)
+    expect(res.template!.content.trim()).toBe(raw)
   })
 
   it('should not hang on trailing text', () => {
     const res = parseComponent(`<template>hi</`)
-    expect(res.template.content).toBe('hi')
+    expect(res.template!.content).toBe('hi')
   })
 
   it('should collect errors with source range', () => {
     const res = parseComponent(`<template>hi</`, { outputSourceRange: true })
     expect(res.errors.length).toBe(1)
-    expect(res.errors[0].start).toBe(0)
+    expect((res.errors[0] as WarningMessage).start).toBe(0)
   })
 })

+ 4 - 4
test/unit/modules/vdom/create-component.spec.ts

@@ -4,14 +4,14 @@ import { setCurrentRenderingInstance } from 'core/instance/render'
 
 describe('create-component', () => {
   let vm
-  beforeEach(done => {
+  beforeEach(() => {
     vm = new Vue({
       template: '<p>{{msg}}</p>',
       data () {
         return { msg: 'hello, my children' }
       }
     }).$mount()
-    Vue.nextTick(done)
+    return new Promise(r => Vue.nextTick(r))
   })
 
   it('create a component basically', () => {
@@ -45,7 +45,7 @@ describe('create-component', () => {
       props: {},
       staticAttrs: { class: 'foo' }
     }
-    spyOn(vm, '$forceUpdate')
+    vi.spyOn(vm, '$forceUpdate')
     function async (resolve, reject) {
       setTimeout(() => {
         resolve({
@@ -86,7 +86,7 @@ describe('create-component', () => {
       props: {},
       staticAttrs: { class: 'bar' }
     }
-    spyOn(vm, '$forceUpdate')
+    vi.spyOn(vm, '$forceUpdate')
     function async (resolve, reject) {
       resolve({
         name: 'child',