wip: improve computed typing + test for setters

This commit is contained in:
Evan You
2019-08-21 12:01:05 -04:00
parent 8d99ab1ff8
commit 0aff144f93
6 changed files with 60 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
import { computed, reactive, effect, stop } from '../src'
import { computed, reactive, effect, stop, ref } from '../src'
describe('reactivity/computed', () => {
it('should return updated value', () => {
@@ -123,6 +123,38 @@ describe('reactivity/computed', () => {
})
it('should support setter', () => {
// TODO
const n = ref(1)
const plusOne = computed({
get: () => n.value + 1,
set: val => {
n.value = val - 1
}
})
expect(plusOne.value).toBe(2)
n.value++
expect(plusOne.value).toBe(3)
plusOne.value = 0
expect(n.value).toBe(-1)
})
it('should trigger effect w/ setter', () => {
const n = ref(1)
const plusOne = computed({
get: () => n.value + 1,
set: val => {
n.value = val - 1
}
})
let dummy
effect(() => {
dummy = n.value
})
expect(dummy).toBe(1)
plusOne.value = 0
expect(dummy).toBe(-1)
})
})