use crate::gemini::types::request::{Chat, Part};
use crate::gemini::utils::MarkdownToParts;
use serde_json::json;
#[tokio::test]
async fn process_web() {
let markdown = " water is good . thanks thanks";
let parts = MarkdownToParts::new(markdown, |_| mime::IMAGE_PNG)
.await
.process();
assert_eq!(Chat::extract_text_all(&parts, ""), markdown);
assert_eq!(parts.len(), 3);
}
#[tokio::test]
async fn process_fs() {
let markdown = " water is good . thanks thanks";
let parts = MarkdownToParts::new(markdown, |_| mime::IMAGE_PNG)
.await
.process();
assert_eq!(Chat::extract_text_all(&parts, ""), markdown);
assert_eq!(parts.len(), 3);
}
#[tokio::test]
async fn process() {
let markdown = " water is good . thanks thanks .";
let parts = MarkdownToParts::new(markdown, |_| mime::IMAGE_PNG)
.await
.process();
assert_eq!(Chat::extract_text_all(&parts, ""), markdown);
assert_eq!(parts.len(), 5);
assert_eq!(
json!(parts[2]),
json!(Into::<Part>::into(
". thanks thanks "
))
);
}
#[tokio::test]
async fn process_with_error() {
let markdown = " water is good . thanks thanks .";
let parser = MarkdownToParts::new(markdown, |_| mime::IMAGE_PNG).await;
let parts = parser.process();
assert_eq!(Chat::extract_text_all(&parts, ""), markdown);
assert_eq!(parts.len(), 3);
assert_eq!(json!(parts[2]), json!(Into::<Part>::into(".")));
}