@@ -9540,6 +9540,33 @@ mod tests {
9540
9540
}
9541
9541
}
9542
9542
9543
+ #[ test]
9544
+ fn test_outbound_channels_created_when_disconnected_removed_on_peer_connected ( ) {
9545
+ let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
9546
+ let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
9547
+ let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
9548
+ let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
9549
+
9550
+ let temporary_channel_id = nodes[ 0 ] . node . create_channel ( nodes[ 1 ] . node . get_our_node_id ( ) , 1_000_000 , 500_000_000 , 42 , None ) . unwrap ( ) ;
9551
+
9552
+ {
9553
+ let per_peer_state = nodes[ 0 ] . node . per_peer_state . read ( ) . unwrap ( ) ;
9554
+ let peer_state_mutex = per_peer_state. get ( & nodes[ 1 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
9555
+ let mut peer_state = peer_state_mutex. lock ( ) . unwrap ( ) ;
9556
+ peer_state. is_connected = false ;
9557
+ }
9558
+
9559
+ let open_channel = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
9560
+ assert_eq ! ( open_channel. temporary_channel_id, temporary_channel_id) ;
9561
+
9562
+ nodes[ 0 ] . node . peer_connected ( & nodes[ 1 ] . node . get_our_node_id ( ) , & msgs:: Init {
9563
+ features : nodes[ 0 ] . node . init_features ( ) , networks : None , remote_network_address : None
9564
+ } , true ) . unwrap ( ) ;
9565
+
9566
+ check_closed_event ( & nodes[ 0 ] , 1 , ClosureReason :: HolderForceClosed , false ) ;
9567
+ let chan_closed_events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
9568
+ }
9569
+
9543
9570
#[ test]
9544
9571
fn test_drop_disconnected_peers_when_removing_channels ( ) {
9545
9572
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
0 commit comments