@@ -726,20 +726,30 @@ describe('main', function () {
726726 } ) ;
727727
728728 it ( 'should send non persistent peer stat message to all peers and it should not increment the sequence id' , function ( done ) {
729- app . _generatePingStatMessage ( false ) ;
729+ MockDate . set ( 1759276800000 ) ; // 1759276800000
730+ app . _generatePingStatMessage ( false ) ; // should still send a persistent ping stat message because we have new peer connected
730731 const _patchRows = db . prepare ( 'SELECT * FROM pending_patches' ) . all ( ) ;
731- assert . equal ( _patchRows . length , 0 ) ;
732- assert . deepStrictEqual ( messageSentToPeer10 , [ { type : 20 /* PEER_STATS */ , at : 0 , peer : 1 , seq : 0 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ] ) ;
733- assert . deepStrictEqual ( messageSentToPeer2 , [ { type : 20 /* PEER_STATS */ , at : 0 , peer : 1 , seq : 0 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ] ) ;
732+ assert . equal ( _patchRows . length , 1 ) ;
733+ assert . deepStrictEqual ( messageSentToPeer10 , [ { type : 10 /* PEER_STATS */ , at : 193226342400000 , peer : 1 , seq : 1 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ] ) ;
734+ assert . deepStrictEqual ( messageSentToPeer2 , [ { type : 10 /* PEER_STATS */ , at : 193226342400000 , peer : 1 , seq : 1 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ] ) ;
735+ MockDate . reset ( ) ;
736+ // should send non persistent ping stat
737+ app . _generatePingStatMessage ( false ) ;
738+ const _patchRows2 = db . prepare ( 'SELECT * FROM pending_patches' ) . all ( ) ;
739+ assert . equal ( _patchRows2 . length , 1 ) ;
740+ assert . deepStrictEqual ( messageSentToPeer10 [ 1 ] , { type : 20 /* PEER_STATS */ , at : 193226342400000 , peer : 1 , seq : 1 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ) ;
741+ assert . deepStrictEqual ( messageSentToPeer2 [ 1 ] , { type : 20 /* PEER_STATS */ , at : 193226342400000 , peer : 1 , seq : 1 , ver : 1 , tab : '_' , delta : { 2 : [ 0 , 0 , 0 , 0 , 0 ] , 10 : [ 0 , 0 , 0 , 0 , 0 ] } } ) ;
742+
734743 // create a persistent ping messgae
735744 app . _generatePingStatMessage ( true ) ;
736- assert ( Math . abs ( hlc . toUnixTimestamp ( messageSentToPeer10 [ 1 ] . at ) - Date . now ( ) ) < 500 , 'Timestamps should be within 500ms of each other' ) ;
737- assert . equal ( messageSentToPeer10 [ 1 ] . seq , 1 ) ;
745+ assert ( Math . abs ( hlc . toUnixTimestamp ( messageSentToPeer10 [ 2 ] . at ) - Date . now ( ) ) < 500 , 'Timestamps should be within 500ms of each other' ) ;
746+ assert . equal ( messageSentToPeer10 [ 2 ] . seq , 2 ) ;
747+ assert . equal ( messageSentToPeer2 [ 2 ] . seq , 2 ) ;
738748 // verify that the next non persistent ping stat message is sent with the same sequence id and timestamp
739749 setTimeout ( ( ) => {
740750 app . _generatePingStatMessage ( false ) ;
741- assert . equal ( messageSentToPeer10 [ 2 ] . seq , 1 ) ;
742- assert . equal ( messageSentToPeer10 [ 2 ] . at , messageSentToPeer10 [ 1 ] . at ) ;
751+ assert . equal ( messageSentToPeer10 [ 3 ] . seq , 2 ) ;
752+ assert . equal ( messageSentToPeer10 [ 3 ] . at , messageSentToPeer10 [ 2 ] . at ) ;
743753 done ( ) ;
744754 } , 100 ) ;
745755 } ) ;
0 commit comments