@@ -9389,6 +9389,33 @@ mod tests {
9389
9389
}
9390
9390
}
9391
9391
9392
+ #[ test]
9393
+ fn test_outbound_channels_created_when_disconnected_removed_on_peer_connected ( ) {
9394
+ let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
9395
+ let node_cfgs = create_node_cfgs ( 2 , & chanmon_cfgs) ;
9396
+ let node_chanmgrs = create_node_chanmgrs ( 2 , & node_cfgs, & [ None , None ] ) ;
9397
+ let nodes = create_network ( 2 , & node_cfgs, & node_chanmgrs) ;
9398
+
9399
+ 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 ( ) ;
9400
+
9401
+ {
9402
+ let per_peer_state = nodes[ 0 ] . node . per_peer_state . read ( ) . unwrap ( ) ;
9403
+ let peer_state_mutex = per_peer_state. get ( & nodes[ 1 ] . node . get_our_node_id ( ) ) . unwrap ( ) ;
9404
+ let mut peer_state = peer_state_mutex. lock ( ) . unwrap ( ) ;
9405
+ peer_state. is_connected = false ;
9406
+ }
9407
+
9408
+ let open_channel = get_event_msg ! ( nodes[ 0 ] , MessageSendEvent :: SendOpenChannel , nodes[ 1 ] . node. get_our_node_id( ) ) ;
9409
+ assert_eq ! ( open_channel. temporary_channel_id, temporary_channel_id) ;
9410
+
9411
+ nodes[ 0 ] . node . peer_connected ( & nodes[ 1 ] . node . get_our_node_id ( ) , & msgs:: Init {
9412
+ features : nodes[ 0 ] . node . init_features ( ) , networks : None , remote_network_address : None
9413
+ } , true ) . unwrap ( ) ;
9414
+
9415
+ check_closed_event ( & nodes[ 0 ] , 1 , ClosureReason :: HolderForceClosed , false ) ;
9416
+ let chan_closed_events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
9417
+ }
9418
+
9392
9419
#[ test]
9393
9420
fn test_drop_disconnected_peers_when_removing_channels ( ) {
9394
9421
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
0 commit comments