mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
test(core): wait for delivery event visibility
This commit is contained in:
@@ -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)
|
||||||
}),
|
}) {
|
||||||
"delivery receipts must emit a delivery phase event for UI live updates"
|
break;
|
||||||
);
|
}
|
||||||
|
assert!(
|
||||||
|
started.elapsed() < Duration::from_secs(5),
|
||||||
|
"delivery receipts must emit a delivery phase event for UI live updates"
|
||||||
|
);
|
||||||
|
std::thread::sleep(Duration::from_millis(10));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user