diff --git a/tests/messages.rs b/tests/messages.rs index 417ca54..2854b1d 100644 --- a/tests/messages.rs +++ b/tests/messages.rs @@ -1,7 +1,7 @@ use std::fs::File; use std::io::{BufReader, Read}; -use chorus::types; +use chorus::types::{self, Guild, MessageSearchQuery}; mod common; @@ -53,3 +53,49 @@ async fn send_message_attachment() { bundle.user.send_message(message, channel.id).await.unwrap(); common::teardown(bundle).await } + +#[tokio::test] +async fn search_messages() { + let f = File::open("./README.md").unwrap(); + let mut reader = BufReader::new(f); + let mut buffer = Vec::new(); + let mut bundle = common::setup().await; + + reader.read_to_end(&mut buffer).unwrap(); + + let attachment = types::PartialDiscordFileAttachment { + id: None, + filename: "README.md".to_string(), + description: None, + content_type: None, + size: None, + url: None, + proxy_url: None, + width: None, + height: None, + ephemeral: None, + duration_secs: None, + waveform: None, + content: buffer, + }; + + let message = types::MessageSendSchema { + content: Some("trans rights now".to_string()), + attachments: Some(vec![attachment.clone()]), + ..Default::default() + }; + let channel = bundle.channel.read().unwrap().clone(); + let vec_attach = vec![attachment.clone()]; + let _arg = Some(&vec_attach); + let message = bundle.user.send_message(message, channel.id).await.unwrap(); + let query = MessageSearchQuery { + author_id: Some(Vec::from([bundle.user.object.read().unwrap().id])), + ..Default::default() + }; + let guild_id = bundle.guild.read().unwrap().id; + let query_result = Guild::search_messages(guild_id, query, &mut bundle.user) + .await + .unwrap(); + assert!(!query_result.is_empty()); + assert_eq!(query_result.get(0).unwrap().id, message.id); +}