@@ -9457,6 +9457,33 @@ mod tests {
9457
9457
}
9458
9458
}
9459
9459
9460
+ #[ test]
9461
+ fn test_outbound_channels_created_when_disconnected_removed_on_peer_connected ( ) {
9462
+ let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
9463
+ let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
9464
+ let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
9465
+ let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
9466
+
9467
+ 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 ( ) ;
9468
+
9469
+ {
9470
+ let per_peer_state = nodes[ 0 ] . node . per_peer_state . read ( ) . unwrap ( ) ;
9471
+ let peer_state_mutex = per_peer_state. get ( & nodes[ 1 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
9472
+ let mut peer_state = peer_state_mutex. lock ( ) . unwrap ( ) ;
9473
+ peer_state. is_connected = false ;
9474
+ }
9475
+
9476
+ let open_channel = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
9477
+ assert_eq ! ( open_channel. temporary_channel_id, temporary_channel_id) ;
9478
+
9479
+ nodes[ 0 ] . node . peer_connected ( & nodes[ 1 ] . node . get_our_node_id ( ) , & msgs:: Init {
9480
+ features : nodes[ 0 ] . node . init_features ( ) , networks : None , remote_network_address : None
9481
+ } , true ) . unwrap ( ) ;
9482
+
9483
+ check_closed_event ( & nodes[ 0 ] , 1 , ClosureReason :: HolderForceClosed , false ) ;
9484
+ let chan_closed_events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
9485
+ }
9486
+
9460
9487
#[ test]
9461
9488
fn test_drop_disconnected_peers_when_removing_channels ( ) {
9462
9489
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
0 commit comments