const state = ref()
const spy = jest.fn()
watch(() => state.value, spy, { immediate: true })
- expect(spy).toHaveBeenCalled()
+ expect(spy).toHaveBeenCalledWith(undefined, undefined, expect.any(Function))
state.value = 3
await nextTick()
expect(spy).toHaveBeenCalledTimes(2)
callWithAsyncErrorHandling(cb, instance, ErrorCodes.WATCH_CALLBACK, [
newValue,
// pass undefined as the old value when it's changed for the first time
- oldValue === INITIAL_WATCHER_VALUE ||
- (isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)
- ? []
- : oldValue,
+ oldValue === INITIAL_WATCHER_VALUE
+ ? undefined
+ : (isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)
+ ? []
+ : oldValue,
onCleanup
])
oldValue = newValue