use zulip_api::client::Client;
use zulip_api::message::{MessageTo, MessageType};
use zulip_api::response::{ApiResult, ErrorCode, Response};
use zulip_api::send_message;
#[tokio::test]
async fn test_send_message() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init()
.ok();
let client = Client::from_zuliprc("./tests/zuliprc").unwrap();
let req = send_message::Request::new()
.with_msg_type(MessageType::Channel)
.with_topic("test topic")
.with_to(MessageTo::channel_name("general"))
.with_content("test message");
let res = client.send_message(&req).await.unwrap();
log::debug!("Send message response: {res}");
assert_eq!(res.result(), ApiResult::Success);
}
#[tokio::test]
async fn test_send_message_no_topic() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init()
.ok();
let client = Client::from_zuliprc("./tests/zuliprc").unwrap();
let req = send_message::Request::new()
.with_msg_type(MessageType::Channel)
.with_to(MessageTo::channel_name("general"))
.with_content("no topic");
let res = client.send_message(&req).await.unwrap();
log::debug!("Send message result: {res}");
assert_eq!(res.result(), ApiResult::Error);
assert_eq!(res.code(), Some(ErrorCode::BadRequest));
}
#[tokio::test]
async fn test_send_message_no_recipient() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init()
.ok();
let client = Client::from_zuliprc("./tests/zuliprc").unwrap();
let req = send_message::Request::new()
.with_msg_type(MessageType::Channel)
.with_topic("test topic")
.with_content("no topic");
let res = client.send_message(&req).await.unwrap();
log::debug!("Send message result: {res}");
assert_eq!(res.result(), ApiResult::Error);
assert_eq!(res.code(), Some(ErrorCode::StreamDoesNotExist));
}
#[tokio::test]
async fn test_send_message_no_content() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
.try_init()
.ok();
let client = Client::from_zuliprc("./tests/zuliprc").unwrap();
let req = send_message::Request::new()
.with_msg_type(MessageType::Channel)
.with_to(MessageTo::channel_name("general"))
.with_topic("test topic");
let res = client.send_message(&req).await.unwrap();
log::debug!("Send message result: {res}");
assert_eq!(res.result(), ApiResult::Error);
assert_eq!(res.code(), Some(ErrorCode::BadRequest));
}