Fix lemmy_federate test (again) (#5757)

This commit is contained in:
Nutomic 2025-06-06 13:56:36 +00:00 committed by GitHub
parent 3aaa52820c
commit 7458a9728d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -701,28 +701,34 @@ mod test {
.await?;
// it immediately performs first retry giving us 2 failures
let rcv = data.stats_receiver.recv().await.unwrap();
assert_eq!(2, rcv.state.fail_count);
wait_receive(2, &mut data.stats_receiver).await;
// another automatic retry after short sleep
sleep(Duration::try_from_secs_f64(1.25)?).await;
let rcv = data.stats_receiver.recv().await.unwrap();
assert_eq!(3, rcv.state.fail_count);
// another automatic retry after short wait
wait_receive(3, &mut data.stats_receiver).await;
// now make sends successful
*data.respond_with_error.write().unwrap() = false;
// give it time for retry and to deliver activities
sleep(Duration::from_secs(2)).await;
// fail count goes back to 0 (need to skip all intermediary stats and get the final one)
let mut buffer = vec![];
data.stats_receiver.recv_many(&mut buffer, 10).await;
assert_eq!(0, buffer.last().unwrap().state.fail_count);
// fail count goes back to 0
wait_receive(0, &mut data.stats_receiver).await;
Ok(())
}
async fn wait_receive(
expected_fail_count: i32,
rec: &mut UnboundedReceiver<FederationQueueStateWithDomain>,
) {
// loop until we get the latest event
for _ in 0..5 {
let rcv = rec.recv().await.unwrap();
if expected_fail_count == rcv.state.fail_count {
return;
}
}
panic!();
}
fn listen_activities(
inbox_sender: UnboundedSender<String>,
respond_with_error: Arc<RwLock<bool>>,