fix(runtime-core/scheduler): avoid duplicate updates of child component

This commit is contained in:
Evan You
2020-02-10 13:09:15 -05:00
parent 778f3a5e88
commit 8a87074df0
3 changed files with 45 additions and 3 deletions

View File

@@ -1,4 +1,9 @@
import { queueJob, nextTick, queuePostFlushCb } from '../src/scheduler'
import {
queueJob,
nextTick,
queuePostFlushCb,
invalidateJob
} from '../src/scheduler'
describe('scheduler', () => {
it('nextTick', async () => {
@@ -230,4 +235,23 @@ describe('scheduler', () => {
expect(calls).toEqual(['job1', 'job2', 'cb1', 'cb2'])
})
})
test('invalidateJob', async () => {
const calls: string[] = []
const job1 = () => {
calls.push('job1')
invalidateJob(job2)
job2()
}
const job2 = () => {
calls.push('job2')
}
// queue both jobs
queueJob(job1)
queueJob(job2)
expect(calls).toEqual([])
await nextTick()
// job2 should be called only once
expect(calls).toEqual(['job1', 'job2'])
})
})