@@ -499,31 +499,69 @@ async fn do_test_owned_channel_saved_to_graph_on_reconnected(public: bool) {
499499 } )
500500 . await ;
501501
502- tokio:: time:: sleep ( tokio:: time:: Duration :: from_millis ( 500 ) ) . await ;
502+ node1
503+ . expect_event ( |event| match event {
504+ NetworkServiceEvent :: ChannelOffline ( pubkey, channel_id, _) => {
505+ assert_eq ! ( pubkey, & node2. pubkey) ;
506+ assert_eq ! ( channel_id, & _new_channel_id) ;
507+ true
508+ }
509+ _ => false ,
510+ } )
511+ . await ;
512+ node2
513+ . expect_event ( |event| match event {
514+ NetworkServiceEvent :: ChannelOffline ( pubkey, channel_id, _) => {
515+ assert_eq ! ( pubkey, & node1. pubkey) ;
516+ assert_eq ! ( channel_id, & _new_channel_id) ;
517+ true
518+ }
519+ _ => false ,
520+ } )
521+ . await ;
522+
523+ wait_until_async_timeout ( || async {
524+ node1. get_network_graph_channels ( ) . await . is_empty ( )
525+ && node2. get_network_graph_channels ( ) . await . is_empty ( )
526+ } )
527+ . await ;
528+
503529 let node1_channels = node1. get_network_graph_channels ( ) . await ;
504530 assert_eq ! ( node1_channels, vec![ ] ) ;
505531 let node2_channels = node2. get_network_graph_channels ( ) . await ;
506532 assert_eq ! ( node2_channels, vec![ ] ) ;
507533
508- node1. connect_to ( & mut node2) . await ;
534+ node1. connect_to_nonblocking ( & node2) . await ;
509535
510536 node1
511- . expect_debug_event ( "Reestablished channel in ChannelReady" )
537+ . expect_event ( |event| match event {
538+ NetworkServiceEvent :: ChannelOnline ( pubkey, channel_id, _) => {
539+ assert_eq ! ( pubkey, & node2. pubkey) ;
540+ assert_eq ! ( channel_id, & _new_channel_id) ;
541+ true
542+ }
543+ _ => false ,
544+ } )
512545 . await ;
513546 node2
514- . expect_debug_event ( "Reestablished channel in ChannelReady" )
547+ . expect_event ( |event| match event {
548+ NetworkServiceEvent :: ChannelOnline ( pubkey, channel_id, _) => {
549+ assert_eq ! ( pubkey, & node1. pubkey) ;
550+ assert_eq ! ( channel_id, & _new_channel_id) ;
551+ true
552+ }
553+ _ => false ,
554+ } )
515555 . await ;
516556
517- let mut node1_channels = vec ! [ ] ;
518- let mut node2_channels = vec ! [ ] ;
519- for _ in 0 ..100 {
520- node1_channels = node1. get_network_graph_channels ( ) . await ;
521- node2_channels = node2. get_network_graph_channels ( ) . await ;
522- if !node1_channels. is_empty ( ) && !node2_channels. is_empty ( ) {
523- break ;
524- }
525- tokio:: time:: sleep ( tokio:: time:: Duration :: from_millis ( 50 ) ) . await ;
526- }
557+ wait_until_async_timeout ( || async {
558+ !node1. get_network_graph_channels ( ) . await . is_empty ( )
559+ && !node2. get_network_graph_channels ( ) . await . is_empty ( )
560+ } )
561+ . await ;
562+
563+ let node1_channels = node1. get_network_graph_channels ( ) . await ;
564+ let node2_channels = node2. get_network_graph_channels ( ) . await ;
527565 assert_ne ! ( node1_channels, vec![ ] ) ;
528566 assert_ne ! ( node2_channels, vec![ ] ) ;
529567}
0 commit comments