@@ -270,20 +270,37 @@ mod test {
270270 harness. stop_client ( client_three) . await ;
271271 tokio:: time:: sleep ( Duration :: from_millis ( 100 ) ) . await ;
272272
273+ // It takes a couple of messages for dead clients to disconnect.
273274 harness. send_messages ( vec ! [ "three" ] ) ;
274- tokio:: time:: sleep ( Duration :: from_millis ( 100 ) ) . await ;
275+ harness. wait_for_messages_to_drain ( ) . await ;
276+ harness. send_messages ( vec ! [ "four" ] ) ;
277+ harness. wait_for_messages_to_drain ( ) . await ;
275278
279+ // Client three is disconnected
280+ assert_eq ! ( harness. sender. receiver_count( ) , 2 ) ;
281+
282+ let client_four = harness. connect_client ( ) ;
283+ tokio:: time:: sleep ( Duration :: from_millis ( 100 ) ) . await ;
276284 assert_eq ! ( harness. sender. receiver_count( ) , 3 ) ;
277285
278- // todo!("client four isn't being properly accepted due to rate limits");
279- let _client_four = harness. connect_client ( ) ;
286+ harness. send_messages ( vec ! [ "five" ] ) ;
287+ harness. wait_for_messages_to_drain ( ) . await ;
288+ harness. send_messages ( vec ! [ "six" ] ) ;
289+ harness. wait_for_messages_to_drain ( ) . await ;
290+
280291
281- // harness.send_messages(vec!["four"]);
282- // harness.wait_for_messages_to_drain().await;
283- //
284- // assert_eq!(vec!["one", "two", "three", "four"], harness.messages_for_client(client_one));
285- // assert_eq!(vec!["one", "two", "three", "four"], harness.messages_for_client(client_two));
286- // assert_eq!(vec!["one", "two"], harness.messages_for_client(client_three));
287- // assert_eq!(vec!["four"], harness.messages_for_client(client_four));
292+ assert_eq ! (
293+ vec![ "one" , "two" , "three" , "four" , "five" , "six" ] ,
294+ harness. messages_for_client( client_one)
295+ ) ;
296+ assert_eq ! (
297+ vec![ "one" , "two" , "three" , "four" , "five" , "six" ] ,
298+ harness. messages_for_client( client_two)
299+ ) ;
300+ assert_eq ! (
301+ vec![ "one" , "two" ] ,
302+ harness. messages_for_client( client_three)
303+ ) ;
304+ assert_eq ! ( vec![ "five" , "six" ] , harness. messages_for_client( client_four) ) ;
288305 }
289306}
0 commit comments