File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
packages/interactivity/src/proxies/test Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -582,6 +582,50 @@ describe( 'Interactivity API', () => {
582
582
expect ( double ) . toBe ( 6 ) ;
583
583
} ) ;
584
584
585
+ it ( 'should set the last value for multiple-overwritten getters' , async ( ) => {
586
+ const target : any = proxifyState ( 'test' , {
587
+ number : 2 ,
588
+ double : 4 ,
589
+ } ) ;
590
+
591
+ let double : any ;
592
+ const spy = jest . fn ( ( ) => ( double = target . double ) ) ;
593
+ effect ( spy ) ;
594
+
595
+ expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
596
+ expect ( double ) . toBe ( 4 ) ;
597
+
598
+ deepMerge (
599
+ target ,
600
+ {
601
+ number : 3 ,
602
+ get double ( ) {
603
+ return this . number * 2 ;
604
+ } ,
605
+ } ,
606
+ true
607
+ ) ;
608
+
609
+ deepMerge (
610
+ target ,
611
+ {
612
+ number : 3 ,
613
+ get double ( ) {
614
+ return `${ this . number * 2 } !` ;
615
+ } ,
616
+ } ,
617
+ true
618
+ ) ;
619
+
620
+ expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
621
+ expect ( double ) . toBe ( 4 ) ;
622
+
623
+ // Access the getter synchronously.
624
+ expect ( target . double ) . toBe ( '6!' ) ;
625
+ expect ( spy ) . toHaveBeenCalledTimes ( 2 ) ;
626
+ expect ( double ) . toBe ( '6!' ) ;
627
+ } ) ;
628
+
585
629
describe ( 'arrays' , ( ) => {
586
630
it ( 'should handle arrays' , ( ) => {
587
631
const target = { a : [ 1 , 2 ] } ;
You can’t perform that action at this time.
0 commit comments