test(effect): add test for nested stopped effect (#417)
This commit is contained in:
parent
e98c558bf3
commit
cb97d152b8
@ -686,6 +686,28 @@ describe('reactivity/effect', () => {
|
|||||||
expect(onStop).toHaveBeenCalled()
|
expect(onStop).toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('stop: a stopped effect is nested in a normal effect', () => {
|
||||||
|
let dummy
|
||||||
|
const obj = reactive({ prop: 1 })
|
||||||
|
const runner = effect(() => {
|
||||||
|
dummy = obj.prop
|
||||||
|
})
|
||||||
|
stop(runner)
|
||||||
|
obj.prop = 2
|
||||||
|
expect(dummy).toBe(1)
|
||||||
|
|
||||||
|
// observed value in inner stopped effect
|
||||||
|
// will track outer effect as an dependency
|
||||||
|
effect(() => {
|
||||||
|
runner()
|
||||||
|
})
|
||||||
|
expect(dummy).toBe(2)
|
||||||
|
|
||||||
|
// notify outer effect to run
|
||||||
|
obj.prop = 3
|
||||||
|
expect(dummy).toBe(3)
|
||||||
|
})
|
||||||
|
|
||||||
it('markNonReactive', () => {
|
it('markNonReactive', () => {
|
||||||
const obj = reactive({
|
const obj = reactive({
|
||||||
foo: markNonReactive({
|
foo: markNonReactive({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user