Made request pass session to message.

This commit is contained in:
2025-04-08 09:30:04 -04:00
parent f9f64dae55
commit 7792e7ca82
4 changed files with 91 additions and 14 deletions

View File

@ -58,15 +58,20 @@ impl Message {
}
impl From<Request> for Message {
fn from(_value: Request) -> Self {
let msg = Message::new(MsgType::ClientRequest);
msg.reply(MsgType::ClientRequest)
fn from(value: Request) -> Self {
let mut msg = Message::new(MsgType::ClientRequest);
match value.session {
Some(id) => msg.add_data("sess_id", id),
None => {}
}
msg
}
}
#[cfg(test)]
mod messages {
use super::*;
use crate::client::requests::{get_root_document, get_root_document_eith_session};
#[test]
fn new_message() {
@ -130,6 +135,27 @@ mod messages {
let msg = Message::new(MsgType::Session);
assert_eq!(msg.get_id(), msg.id);
}
#[test]
fn from_request_no_session() {
let req = get_root_document();
let msg: Message = req.into();
assert!(
msg.get_data("sess_id").is_none(),
"should not have a session id"
)
}
#[test]
fn from_request_with_session() {
let id = Uuid::new_v4();
let req = get_root_document_eith_session(id.clone());
let msg: Message = req.into();
match msg.get_data("sess_id") {
Some(result) => assert_eq!(result.to_uuid().unwrap(), id),
None => unreachable!("should return an id"),
}
}
}
#[derive(Clone)]