@@ -270,20 +270,37 @@ mod test {
270
270
harness. stop_client ( client_three) . await ;
271
271
tokio:: time:: sleep ( Duration :: from_millis ( 100 ) ) . await ;
272
272
273
+ // It takes a couple of messages for dead clients to disconnect.
273
274
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 ;
275
278
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 ;
276
284
assert_eq ! ( harness. sender. receiver_count( ) , 3 ) ;
277
285
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
+
280
291
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) ) ;
288
305
}
289
306
}
0 commit comments