@@ -482,8 +482,12 @@ describe('reactivity/computed', () => {
482
482
c3 . value
483
483
484
484
expect ( c1 . effect . _dirtyLevel ) . toBe ( DirtyLevels . Dirty )
485
- expect ( c2 . effect . _dirtyLevel ) . toBe ( DirtyLevels . MaybeDirty )
486
- expect ( c3 . effect . _dirtyLevel ) . toBe ( DirtyLevels . MaybeDirty )
485
+ expect ( c2 . effect . _dirtyLevel ) . toBe (
486
+ DirtyLevels . MaybeDirty_ComputedSideEffect ,
487
+ )
488
+ expect ( c3 . effect . _dirtyLevel ) . toBe (
489
+ DirtyLevels . MaybeDirty_ComputedSideEffect ,
490
+ )
487
491
} )
488
492
489
493
it ( 'should work when chained(ref+computed)' , ( ) => {
@@ -550,8 +554,12 @@ describe('reactivity/computed', () => {
550
554
551
555
c3 . value
552
556
expect ( c1 . effect . _dirtyLevel ) . toBe ( DirtyLevels . Dirty )
553
- expect ( c2 . effect . _dirtyLevel ) . toBe ( DirtyLevels . MaybeDirty )
554
- expect ( c3 . effect . _dirtyLevel ) . toBe ( DirtyLevels . MaybeDirty )
557
+ expect ( c2 . effect . _dirtyLevel ) . toBe (
558
+ DirtyLevels . MaybeDirty_ComputedSideEffect ,
559
+ )
560
+ expect ( c3 . effect . _dirtyLevel ) . toBe (
561
+ DirtyLevels . MaybeDirty_ComputedSideEffect ,
562
+ )
555
563
556
564
v1 . value . v . value = 999
557
565
expect ( c1 . effect . _dirtyLevel ) . toBe ( DirtyLevels . Dirty )
@@ -581,4 +589,26 @@ describe('reactivity/computed', () => {
581
589
await nextTick ( )
582
590
expect ( serializeInner ( root ) ) . toBe ( `2` )
583
591
} )
592
+
593
+ it ( 'should not trigger effect scheduler by recurse computed effect' , async ( ) => {
594
+ const v = ref ( 'Hello' )
595
+ const c = computed ( ( ) => {
596
+ v . value += ' World'
597
+ return v . value
598
+ } )
599
+ const Comp = {
600
+ setup : ( ) => {
601
+ return ( ) => c . value
602
+ } ,
603
+ }
604
+ const root = nodeOps . createElement ( 'div' )
605
+
606
+ render ( h ( Comp ) , root )
607
+ await nextTick ( )
608
+ expect ( serializeInner ( root ) ) . toBe ( 'Hello World' )
609
+
610
+ v . value += ' World'
611
+ await nextTick ( )
612
+ expect ( serializeInner ( root ) ) . toBe ( 'Hello World World World World' )
613
+ } )
584
614
} )
0 commit comments