mirror of https://github.com/vuejs/core.git
test(reactive): use vitest fn instead of counting manually (#11746)
This commit is contained in:
parent
0387e1b906
commit
3de5556521
|
@ -46,26 +46,22 @@ describe('reactivity/ref', () => {
|
||||||
it('ref wrapped in reactive should not track internal _value access', () => {
|
it('ref wrapped in reactive should not track internal _value access', () => {
|
||||||
const a = ref(1)
|
const a = ref(1)
|
||||||
const b = reactive(a)
|
const b = reactive(a)
|
||||||
let calls = 0
|
|
||||||
let dummy
|
let dummy
|
||||||
|
const fn = vi.fn(() => {
|
||||||
effect(() => {
|
|
||||||
calls++
|
|
||||||
dummy = b.value // this will observe both b.value and a.value access
|
dummy = b.value // this will observe both b.value and a.value access
|
||||||
})
|
})
|
||||||
expect(calls).toBe(1)
|
effect(fn)
|
||||||
|
expect(fn).toHaveBeenCalledTimes(1)
|
||||||
expect(dummy).toBe(1)
|
expect(dummy).toBe(1)
|
||||||
|
|
||||||
// mutating a.value should only trigger effect once
|
// mutating a.value should only trigger effect once
|
||||||
calls = 0
|
|
||||||
a.value = 3
|
a.value = 3
|
||||||
expect(calls).toBe(1)
|
expect(fn).toHaveBeenCalledTimes(2)
|
||||||
expect(dummy).toBe(3)
|
expect(dummy).toBe(3)
|
||||||
|
|
||||||
// mutating b.value should trigger the effect twice. (once for a.value change and once for b.value change)
|
// mutating b.value should trigger the effect twice. (once for a.value change and once for b.value change)
|
||||||
calls = 0
|
|
||||||
b.value = 5
|
b.value = 5
|
||||||
expect(calls).toBe(2)
|
expect(fn).toHaveBeenCalledTimes(4)
|
||||||
expect(dummy).toBe(5)
|
expect(dummy).toBe(5)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue