forked from lavina/lavina
1
0
Fork 0

test for server response

This commit is contained in:
Nikita Vilunov 2023-11-01 23:12:35 +04:00
parent ed83436501
commit b7d695519e
1 changed files with 39 additions and 12 deletions

View File

@ -355,6 +355,7 @@ fn server_message_body(input: &str) -> IResult<&str, ServerMessageBody> {
server_message_body_notice, server_message_body_notice,
server_message_body_ping, server_message_body_ping,
server_message_body_pong, server_message_body_pong,
server_message_body_cap,
))(input) ))(input)
} }
@ -380,12 +381,7 @@ fn server_message_body_ping(input: &str) -> IResult<&str, ServerMessageBody> {
let (input, _) = tag("PING ")(input)?; let (input, _) = tag("PING ")(input)?;
let (input, token) = token(input)?; let (input, token) = token(input)?;
Ok(( Ok((input, ServerMessageBody::Ping { token: token.into() }))
input,
ServerMessageBody::Ping {
token: token.into(),
},
))
} }
fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> { fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> {
@ -403,6 +399,21 @@ fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> {
)) ))
} }
fn server_message_body_cap(input: &str) -> IResult<&str, ServerMessageBody> {
let (input, _) = tag("CAP ")(input)?;
let (input, from) = receiver(input)?;
let (input, _) = tag(" LS :")(input)?;
let (input, token) = token(input)?;
Ok((
input,
ServerMessageBody::Cap {
target: from.into(),
subcmd: CapSubBody::Ls(token.into()),
},
))
}
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use assert_matches::*; use assert_matches::*;
@ -427,9 +438,7 @@ mod test {
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result)); assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
let mut bytes = vec![]; let mut bytes = vec![];
sync_future(expected.write_async(&mut bytes)) sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
.unwrap()
.unwrap();
assert_eq!(bytes, input.as_bytes()); assert_eq!(bytes, input.as_bytes());
} }
@ -449,9 +458,27 @@ mod test {
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result)); assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
let mut bytes = vec![]; let mut bytes = vec![];
sync_future(expected.write_async(&mut bytes)) sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
.unwrap() assert_eq!(bytes, input.as_bytes());
.unwrap(); }
#[test]
fn test_server_message_cap_ls() {
let input = "CAP * LS :sasl\r\n";
let expected = ServerMessage {
tags: vec![],
sender: None,
body: ServerMessageBody::Cap {
target: "*".into(),
subcmd: CapSubBody::Ls("sasl".into()),
},
};
let result = server_message(input);
assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result));
let mut bytes = vec![];
sync_future(expected.write_async(&mut bytes)).unwrap().unwrap();
assert_eq!(bytes, input.as_bytes()); assert_eq!(bytes, input.as_bytes());
} }
} }