@@ -606,6 +606,46 @@ export var test_ObservableArray_lastIndexOfShouldReturnCorrectIndexStartingFrom
606606 TKUnit . assert ( result === 1 , "ObservableArray lastIndexOf() should return correct index!" ) ;
607607} ;
608608
609+ export var test_ObservableArray_settingLengthToZeroPerformsSplice = function ( ) {
610+ var array = new observableArrayModule . ObservableArray ( [ 1 , 2 , 3 ] ) ;
611+
612+ var changeRaised = false ;
613+ array . on ( "change" , ( args : observableArrayModule . ChangedData < number > ) => {
614+ changeRaised = true ;
615+ TKUnit . assertEqual ( args . object , array ) ;
616+ TKUnit . assertEqual ( args . eventName , "change" ) ;
617+ TKUnit . assertEqual ( args . action , observableArrayModule . ChangeType . Splice ) ;
618+ TKUnit . assertEqual ( args . index , 0 ) ;
619+ TKUnit . assertEqual ( args . addedCount , 0 ) ;
620+ TKUnit . arrayAssert ( args . removed , [ 1 , 2 , 3 ] ) ;
621+ } ) ;
622+
623+ array . length = 0 ;
624+
625+ TKUnit . assertEqual ( array . length , 0 ) ;
626+ TKUnit . assertTrue ( changeRaised ) ;
627+ } ;
628+
629+ export var test_ObservableArray_settingLengthToSomethingPerformsSplice = function ( ) {
630+ var array = new observableArrayModule . ObservableArray ( [ 1 , 2 , 3 ] ) ;
631+
632+ var changeRaised = false ;
633+ array . on ( "change" , ( args : observableArrayModule . ChangedData < number > ) => {
634+ changeRaised = true ;
635+ TKUnit . assertEqual ( args . object , array ) ;
636+ TKUnit . assertEqual ( args . eventName , "change" ) ;
637+ TKUnit . assertEqual ( args . action , observableArrayModule . ChangeType . Splice ) ;
638+ TKUnit . assertEqual ( args . index , 1 ) ;
639+ TKUnit . assertEqual ( args . addedCount , 0 ) ;
640+ TKUnit . arrayAssert ( args . removed , [ 2 , 3 ] ) ;
641+ } ) ;
642+
643+ array . length = 1 ;
644+
645+ TKUnit . assertEqual ( array . length , 1 ) ;
646+ TKUnit . assertTrue ( changeRaised ) ;
647+ } ;
648+
609649var array = new observableArrayModule . ObservableArray ( ) ;
610650
611651// We do not have indexer!
0 commit comments