]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test: coverage
authorEvan You <yyx990803@gmail.com>
Tue, 27 Aug 2019 18:42:05 +0000 (14:42 -0400)
committerEvan You <yyx990803@gmail.com>
Tue, 27 Aug 2019 18:42:05 +0000 (14:42 -0400)
packages/reactivity/__tests__/effect.spec.ts
packages/runtime-core/__tests__/apiInject.spec.ts
packages/runtime-core/__tests__/apiWatch.spec.ts
packages/runtime-core/src/apiInject.ts
packages/runtime-core/src/warning.ts

index eb0e7f4b388c34a4bd3231cc7791b8f1d1a49920..758fedeb27f6b2a32f8f842207509946aeb87d6c 100644 (file)
@@ -570,7 +570,7 @@ describe('reactivity/effect', () => {
   })
 
   it('events: onTrigger', () => {
-    let events: any[] = []
+    let events: DebuggerEvent[] = []
     let dummy
     const onTrigger = jest.fn((e: DebuggerEvent) => {
       events.push(e)
index a5d09a4ff7e3d7fe8750e2e82bd76ef398ebdf03..26359fe4c1ac10dfb8d03ae79a8edf81fa2fdaf2 100644 (file)
@@ -258,4 +258,29 @@ describe('api: provide/inject', () => {
     await nextTick()
     expect(serialize(root)).toBe(`<div>2</div>`)
   })
+
+  it('should warn unfound', () => {
+    const Provider = {
+      setup() {
+        return () => h(Middle)
+      }
+    }
+
+    const Middle = {
+      render: () => h(Consumer)
+    }
+
+    const Consumer = {
+      setup() {
+        const foo = inject('foo')
+        expect(foo).toBeUndefined()
+        return () => foo
+      }
+    }
+
+    const root = nodeOps.createElement('div')
+    render(h(Provider), root)
+    expect(serialize(root)).toBe(`<div><!----></div>`)
+    expect(`injection "foo" not found.`).toHaveBeenWarned()
+  })
 })
index 579dbf8e40b2e173ba004eef134a8645952a5b43..263864dfdcac33147c492ac1f734b1beeb88da5e 100644 (file)
@@ -260,34 +260,35 @@ describe('api: watch', () => {
       nested: {
         count: ref(0)
       },
-      array: [1, 2, 3]
+      array: [1, 2, 3],
+      map: new Map([['a', 1], ['b', 2]])
     })
 
     let dummy
-    let arr
     watch(
       () => state,
       state => {
-        dummy = state.nested.count
-        arr = state.array[2]
+        dummy = [state.nested.count, state.array[0], state.map.get('a')]
       },
       { deep: true }
     )
 
     await nextTick()
-    expect(dummy).toBe(0)
-    expect(arr).toBe(3)
+    expect(dummy).toEqual([0, 1, 1])
 
     state.nested.count++
     await nextTick()
-    expect(dummy).toBe(1)
-    expect(arr).toBe(3)
+    expect(dummy).toEqual([1, 1, 1])
 
     // nested array mutation
-    state.array[2] = 4
+    state.array[0] = 2
     await nextTick()
-    expect(dummy).toBe(1)
-    expect(arr).toBe(4)
+    expect(dummy).toEqual([1, 2, 1])
+
+    // nested map mutation
+    state.map.set('a', 2)
+    await nextTick()
+    expect(dummy).toEqual([1, 2, 2])
   })
 
   it('lazy', async () => {
index b9e105fe6a7c40c1dcf4d30426e4c959ee551246..7ba6ade7ec891ceab61a9aa0be9832e86e214c80 100644 (file)
@@ -35,7 +35,7 @@ export function inject(key: InjectionKey<any> | string, defaultValue?: any) {
     } else if (defaultValue !== undefined) {
       return defaultValue
     } else if (__DEV__) {
-      warn(`injection ${key} not found.`)
+      warn(`injection "${key}" not found.`)
     }
   }
 }
index 78a8981bc92e8eb9f4c592ccc048ab88dc5e6da1..3553a408606d68b8912cf23cc79603ef189d2282 100644 (file)
@@ -1,3 +1,4 @@
 export function warn(...args: any[]) {
   // TODO
+  console.warn(...args)
 }