Merge branch 'fix/live-reconnect' into fix/live-offline-merge

This commit is contained in:
fluid-chey committed 2026-11-04 13:21:39 -07:00
commit b4f301c008
2 files changed
+20

No files matched your search

+2
View File
@@ -165,6 +165,8 @@ impl<S: Socket> Driver<S> {
fn connect(&mut self, now: Instant) {
self.reconnect_at = None;
// A server counts per connection.
self.pace = Pace::new(now);
self.conn = Some(Conn::new(now));
if let Err(e) = self.sock.open(&self.server().url()) {
self.dropped(e, now);
+18
View File
@@ -392,6 +392,24 @@ fn a_long_queue_goes_out_paced_and_in_order() {
assert_eq!(d.deadline().unwrap() - now, ms(500), "nothing left to send but the reconnect");
}
#[test]
fn a_new_connection_starts_with_a_fresh_pace() {
let t0 = Instant::now();
let (mut d, _inbox) = start(Script::default(), t0);
d.opened(t0);
d.message(&welcome(), t0);
for seq in 0..500 {
d.send(ClientMsg::Ack { seq }, t0);
}
d.closed(1006, "", t0);
let back = d.deadline().unwrap();
d.tick(back);
d.opened(back);
d.message(&welcome(), back);
d.send(ClientMsg::Ack { seq: 900 }, back);
assert!(d.sock.sent.iter().any(|m| matches!(m, ClientMsg::Ack { seq: 900 })), "sent at once");
}
#[test]
fn leaving_sends_what_was_waiting_its_turn() {
let t0 = Instant::now();