mirror of
https://github.com/storytold/figcraft.git
synced 2026-11-09 03:51:42 +00:00
Merge branch 'fix/live-reconnect' into fix/live-offline-merge
This commit is contained in:
commit
b4f301c008
2 files changed
+20
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user