From 704625b0783fe02e21f068550c287cd694ef5bef Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Sun, 30 Mar 2025 17:04:01 -0400 Subject: [PATCH] Made message ids unique. --- src/queue.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/queue.rs b/src/queue.rs index 3ee3017..7a42de3 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -131,7 +131,7 @@ impl Queue { fn listen(&mut self) { loop { let mut msg = self.rx.recv().unwrap(); - msg.id = Uuid::max(); + msg.id = Uuid::new_v4(); let senders = self.registry.read().unwrap(); for sender in senders.iter() { sender.send(msg.reply(MsgType::ClientMessage)).unwrap(); @@ -169,4 +169,17 @@ mod queues { _ => unreachable!("should have been a client message"), } } + + #[test] + fn new_client_messages_are_unique() { + let (tx, rx) = start_queue(); + let msg = Message::new(); + let mut ids: Vec = Vec::new(); + for _ in 0..10 { + tx.send(msg.reply(MsgType::NewClientMessage)).unwrap(); + let result = rx.recv().unwrap(); + assert!(!ids.contains(&result.id.clone()), "{} is a duplicate", &result.id); + ids.push(result.id); + } + } }