test(core): wait for delivery event visibility

This commit is contained in:
2026-07-24 21:05:37 +02:00
parent 83b66c5eb7
commit b8e8dd8644

View File

@@ -73,14 +73,23 @@ fn public_share_receives_without_sender_approval() {
assert_eq!(deliveries[0].receiver_name.as_deref(), Some("Receiver")); assert_eq!(deliveries[0].receiver_name.as_deref(), Some("Receiver"));
assert_eq!(deliveries[0].status, "completed"); assert_eq!(deliveries[0].status, "completed");
assert!(deliveries[0].completed_at.is_some()); assert!(deliveries[0].completed_at.is_some());
assert!( // The repository commit becomes visible just before the receipt handler
sender.sink.events().iter().any(|event| { // emits its event, so completion and sink observation are not atomic.
let started = Instant::now();
loop {
if sender.sink.events().iter().any(|event| {
event.phase == "delivery" event.phase == "delivery"
&& event.kind == "receiver-completed" && event.kind == "receiver-completed"
&& event.transfer_id == Some(share.transfer_id) && event.transfer_id == Some(share.transfer_id)
}), }) {
break;
}
assert!(
started.elapsed() < Duration::from_secs(5),
"delivery receipts must emit a delivery phase event for UI live updates" "delivery receipts must emit a delivery phase event for UI live updates"
); );
std::thread::sleep(Duration::from_millis(10));
}
} }
#[test] #[test]