|
|
@@ -258,7 +258,7 @@ describe('reactivity/computed', () => {
|
|
|
])
|
|
|
})
|
|
|
|
|
|
- it('debug: onTrigger', () => {
|
|
|
+ it('debug: onTrigger (reactive)', () => {
|
|
|
let events: DebuggerEvent[] = []
|
|
|
const onTrigger = vi.fn((e: DebuggerEvent) => {
|
|
|
events.push(e)
|
|
|
@@ -618,4 +618,29 @@ describe('reactivity/computed', () => {
|
|
|
expect(serializeInner(root)).toBe('Hello World World World World')
|
|
|
expect(COMPUTED_SIDE_EFFECT_WARN).toHaveBeenWarned()
|
|
|
})
|
|
|
+
|
|
|
+ it('debug: onTrigger (ref)', () => {
|
|
|
+ let events: DebuggerEvent[] = []
|
|
|
+ const onTrigger = vi.fn((e: DebuggerEvent) => {
|
|
|
+ events.push(e)
|
|
|
+ })
|
|
|
+ const obj = ref(1)
|
|
|
+ const c = computed(() => obj.value, { onTrigger })
|
|
|
+
|
|
|
+ // computed won't trigger compute until accessed
|
|
|
+ c.value
|
|
|
+
|
|
|
+ obj.value++
|
|
|
+
|
|
|
+ expect(c.value).toBe(2)
|
|
|
+ expect(onTrigger).toHaveBeenCalledTimes(1)
|
|
|
+ expect(events[0]).toEqual({
|
|
|
+ effect: c.effect,
|
|
|
+ target: toRaw(obj),
|
|
|
+ type: TriggerOpTypes.SET,
|
|
|
+ key: 'value',
|
|
|
+ oldValue: 1,
|
|
|
+ newValue: 2,
|
|
|
+ })
|
|
|
+ })
|
|
|
})
|