import { nextTick } from 'core/util/next-tick'
describe('nextTick', () => {
it('accepts a callback', done => {
nextTick(done)
})
it('returns undefined when passed a callback', () => {
expect(nextTick(() => {})).toBeUndefined()
})
if (typeof Promise !== 'undefined') {
it('returns a Promise when provided no callback', done => {
nextTick().then(done)
})
it('returns a Promise with a context argument when provided a falsy callback and an object', done => {
const obj = {}
nextTick(undefined, obj).then(ctx => {
expect(ctx).toBe(obj)
done()
})
})
it('returned Promise should resolve correctly vs callback', done => {
const spy = vi.fn()
nextTick(spy)
nextTick().then(() => {
expect(spy).toHaveBeenCalled()
done()
})
})
}
})