test(reactive): use vitest fn instead of counting manually (#11746)

This commit is contained in:
Maisha Tremblay 2024-09-02 17:08:19 +08:00 committed by GitHub
parent 0387e1b906
commit 3de5556521
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 9 deletions

View File

@ -46,26 +46,22 @@ describe('reactivity/ref', () => {
it('ref wrapped in reactive should not track internal _value access', () => {
const a = ref(1)
const b = reactive(a)
let calls = 0
let dummy
effect(() => {
calls++
const fn = vi.fn(() => {
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)
// mutating a.value should only trigger effect once
calls = 0
a.value = 3
expect(calls).toBe(1)
expect(fn).toHaveBeenCalledTimes(2)
expect(dummy).toBe(3)
// mutating b.value should trigger the effect twice. (once for a.value change and once for b.value change)
calls = 0
b.value = 5
expect(calls).toBe(2)
expect(fn).toHaveBeenCalledTimes(4)
expect(dummy).toBe(5)
})