File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
packages/svelte/tests/signals Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -574,4 +574,40 @@ describe('signals', () => {
574
574
assert . equal ( d . deps ?. length , 1 ) ;
575
575
} ;
576
576
} ) ;
577
+
578
+ test ( 'unowned deriveds are correctly connected and disconnected from the graph' , ( ) => {
579
+ var count = source ( 0 ) ;
580
+
581
+ function create_derived ( ) {
582
+ return derived ( ( ) => $ . get ( count ) * 2 ) ;
583
+ }
584
+
585
+ return ( ) => {
586
+ let d = create_derived ( ) ;
587
+
588
+ const destroy = effect_root ( ( ) => {
589
+ render_effect ( ( ) => {
590
+ assert . equal ( $ . get ( d ) , 0 ) ;
591
+ } ) ;
592
+ } ) ;
593
+
594
+ assert . equal ( $ . get ( d ) , 0 ) ;
595
+ assert . equal ( count . reactions ?. length , 1 ) ;
596
+ assert . equal ( d . deps ?. length , 1 ) ;
597
+
598
+ set ( count , 1 ) ;
599
+ assert . equal ( $ . get ( d ) , 2 ) ;
600
+ assert . equal ( count . reactions ?. length , 1 ) ;
601
+ assert . equal ( d . deps ?. length , 1 ) ;
602
+
603
+ destroy ( ) ;
604
+
605
+ assert . equal ( count . reactions , null ) ;
606
+
607
+ set ( count , 2 ) ;
608
+ assert . equal ( $ . get ( d ) , 4 ) ;
609
+ assert . equal ( count . reactions , null ) ;
610
+ assert . equal ( d . deps ?. length , 1 ) ;
611
+ } ;
612
+ } ) ;
577
613
} ) ;
You can’t perform that action at this time.
0 commit comments