diff --git a/packages/reactivity/__tests__/effect.spec.ts b/packages/reactivity/__tests__/effect.spec.ts
index eb0e7f4b..758fedeb 100644
--- a/packages/reactivity/__tests__/effect.spec.ts
+++ b/packages/reactivity/__tests__/effect.spec.ts
@@ -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)
diff --git a/packages/runtime-core/__tests__/apiInject.spec.ts b/packages/runtime-core/__tests__/apiInject.spec.ts
index a5d09a4f..26359fe4 100644
--- a/packages/runtime-core/__tests__/apiInject.spec.ts
+++ b/packages/runtime-core/__tests__/apiInject.spec.ts
@@ -258,4 +258,29 @@ describe('api: provide/inject', () => {
await nextTick()
expect(serialize(root)).toBe(`
2
`)
})
+
+ 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(``)
+ expect(`injection "foo" not found.`).toHaveBeenWarned()
+ })
})
diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts
index 579dbf8e..263864df 100644
--- a/packages/runtime-core/__tests__/apiWatch.spec.ts
+++ b/packages/runtime-core/__tests__/apiWatch.spec.ts
@@ -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 () => {
diff --git a/packages/runtime-core/src/apiInject.ts b/packages/runtime-core/src/apiInject.ts
index b9e105fe..7ba6ade7 100644
--- a/packages/runtime-core/src/apiInject.ts
+++ b/packages/runtime-core/src/apiInject.ts
@@ -35,7 +35,7 @@ export function inject(key: InjectionKey | string, defaultValue?: any) {
} else if (defaultValue !== undefined) {
return defaultValue
} else if (__DEV__) {
- warn(`injection ${key} not found.`)
+ warn(`injection "${key}" not found.`)
}
}
}
diff --git a/packages/runtime-core/src/warning.ts b/packages/runtime-core/src/warning.ts
index 78a8981b..3553a408 100644
--- a/packages/runtime-core/src/warning.ts
+++ b/packages/runtime-core/src/warning.ts
@@ -1,3 +1,4 @@
export function warn(...args: any[]) {
// TODO
+ console.warn(...args)
}