Merge remote-tracking branch 'github/master' into changing_unwrap_ref
This commit is contained in:
@@ -175,9 +175,17 @@ describe('component props', () => {
|
||||
expect(proxy.foo).toBe(2)
|
||||
expect(proxy.bar).toEqual({ a: 1 })
|
||||
|
||||
render(h(Comp, { foo: undefined, bar: { b: 2 } }), root)
|
||||
render(h(Comp, { bar: { b: 2 } }), root)
|
||||
expect(proxy.foo).toBe(1)
|
||||
expect(proxy.bar).toEqual({ b: 2 })
|
||||
|
||||
render(h(Comp, { foo: 3, bar: { b: 3 } }), root)
|
||||
expect(proxy.foo).toBe(3)
|
||||
expect(proxy.bar).toEqual({ b: 3 })
|
||||
|
||||
render(h(Comp, { bar: { b: 4 } }), root)
|
||||
expect(proxy.foo).toBe(1)
|
||||
expect(proxy.bar).toEqual({ b: 4 })
|
||||
})
|
||||
|
||||
test('optimized props updates', async () => {
|
||||
|
||||
@@ -3,7 +3,8 @@ import {
|
||||
render,
|
||||
getCurrentInstance,
|
||||
nodeOps,
|
||||
createApp
|
||||
createApp,
|
||||
shallowReadonly
|
||||
} from '@vue/runtime-test'
|
||||
import { mockWarn } from '@vue/shared'
|
||||
import { ComponentInternalInstance } from '../src/component'
|
||||
@@ -85,10 +86,10 @@ describe('component: proxy', () => {
|
||||
}
|
||||
render(h(Comp), nodeOps.createElement('div'))
|
||||
expect(instanceProxy.$data).toBe(instance!.data)
|
||||
expect(instanceProxy.$props).toBe(instance!.props)
|
||||
expect(instanceProxy.$attrs).toBe(instance!.attrs)
|
||||
expect(instanceProxy.$slots).toBe(instance!.slots)
|
||||
expect(instanceProxy.$refs).toBe(instance!.refs)
|
||||
expect(instanceProxy.$props).toBe(shallowReadonly(instance!.props))
|
||||
expect(instanceProxy.$attrs).toBe(shallowReadonly(instance!.attrs))
|
||||
expect(instanceProxy.$slots).toBe(shallowReadonly(instance!.slots))
|
||||
expect(instanceProxy.$refs).toBe(shallowReadonly(instance!.refs))
|
||||
expect(instanceProxy.$parent).toBe(
|
||||
instance!.parent && instance!.parent.proxy
|
||||
)
|
||||
|
||||
@@ -262,4 +262,20 @@ describe('scheduler', () => {
|
||||
// job2 should be called only once
|
||||
expect(calls).toEqual(['job1', 'job2', 'job3', 'job4'])
|
||||
})
|
||||
|
||||
test('sort job based on id', async () => {
|
||||
const calls: string[] = []
|
||||
const job1 = () => calls.push('job1')
|
||||
// job1 has no id
|
||||
const job2 = () => calls.push('job2')
|
||||
job2.id = 2
|
||||
const job3 = () => calls.push('job3')
|
||||
job3.id = 1
|
||||
|
||||
queueJob(job1)
|
||||
queueJob(job2)
|
||||
queueJob(job3)
|
||||
await nextTick()
|
||||
expect(calls).toEqual(['job3', 'job2', 'job1'])
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user