This commit is contained in:
111
e2e/rust/tests/batch_test.rs
generated
Normal file
111
e2e/rust/tests/batch_test.rs
generated
Normal file
@@ -0,0 +1,111 @@
|
||||
// This file is auto-generated by alef — DO NOT EDIT.
|
||||
// alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
|
||||
// To regenerate: alef generate
|
||||
// To verify freshness: alef verify --exit-code
|
||||
// Issues & docs: https://github.com/kreuzberg-dev/alef
|
||||
//! E2e tests for category: batch
|
||||
|
||||
use kreuzberg::BatchBytesItem;
|
||||
use kreuzberg::BatchFileItem;
|
||||
use kreuzberg::{batch_extract_bytes, batch_extract_bytes_sync, batch_extract_files, batch_extract_files_sync};
|
||||
|
||||
#[test]
|
||||
fn test_batch_bytes_invalid_mime() {
|
||||
// batch_extract_bytes_sync invalid MIME
|
||||
let items_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"content":[72,101,108,108,111],"mime_type":"application/x-nonexistent"}]"#).unwrap();
|
||||
let items = serde_json::from_value::<Vec<BatchBytesItem>>(items_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_bytes_sync(items, &config).expect("should succeed");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_batch_extract_bytes_happy() {
|
||||
// batch_extract_bytes: happy path with mixed inputs
|
||||
let items_json: serde_json::Value = serde_json::from_str(r#"[{"content":[72,101,108,108,111,44,32,119,111,114,108,100,33],"mime_type":"text/plain"},{"content":[60,104,116,109,108,62,60,98,111,100,121,62,84,101,115,116,60,47,98,111,100,121,62,60,47,104,116,109,108,62],"mime_type":"text/html"}]"#).unwrap();
|
||||
let items = serde_json::from_value::<Vec<BatchBytesItem>>(items_json).unwrap();
|
||||
let config = Default::default();
|
||||
let result = batch_extract_bytes(items, &config).await.expect("should succeed");
|
||||
assert!(!result.is_empty(), "expected >= 1");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_batch_extract_bytes_mixed_format() {
|
||||
// batch_extract_bytes: handles unsupported MIME gracefully
|
||||
let items_json: serde_json::Value = serde_json::from_str(
|
||||
r#"[{"content":[80,68,70,32,112,108,97,99,101,104,111,108,100,101,114],"mime_type":"application/x-unknown"}]"#,
|
||||
)
|
||||
.unwrap();
|
||||
let items = serde_json::from_value::<Vec<BatchBytesItem>>(items_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_bytes(items, &config).await.expect("should succeed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_batch_extract_bytes_sync_empty_list() {
|
||||
// batch_extract_bytes_sync: empty batch
|
||||
let items_json: serde_json::Value = serde_json::from_str(r#"[]"#).unwrap();
|
||||
let items = serde_json::from_value::<Vec<BatchBytesItem>>(items_json).unwrap();
|
||||
let config = Default::default();
|
||||
let result = batch_extract_bytes_sync(items, &config).expect("should succeed");
|
||||
assert_eq!(result.len(), 0, "expected exactly 0 elements, got {}", result.len());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_batch_extract_bytes_sync_invalid_mime() {
|
||||
// batch_extract_bytes_sync: unsupported MIME
|
||||
let items_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"content":[100,97,116,97],"mime_type":"application/x-unknown"}]"#).unwrap();
|
||||
let items = serde_json::from_value::<Vec<BatchBytesItem>>(items_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_bytes_sync(items, &config).expect("should succeed");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_batch_file_async_basic() {
|
||||
// Extract text from multiple files asynchronously
|
||||
let paths_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"path":"pdf/fake_memo.pdf"},{"path":"text/fake_text.txt"}]"#).unwrap();
|
||||
let paths = serde_json::from_value::<Vec<BatchFileItem>>(paths_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_files(paths, &config).await.expect("should succeed");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_batch_file_async_not_found() {
|
||||
// batch_extract_file async nonexistent
|
||||
let paths_json: serde_json::Value = serde_json::from_str(r#"[{"path":"/nonexistent/a.pdf"}]"#).unwrap();
|
||||
let paths = serde_json::from_value::<Vec<BatchFileItem>>(paths_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_files(paths, &config).await.expect("should succeed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_batch_file_not_found() {
|
||||
// batch_extract_file_sync nonexistent
|
||||
let paths_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"path":"/nonexistent/a.pdf"},{"path":"/nonexistent/b.txt"}]"#).unwrap();
|
||||
let paths = serde_json::from_value::<Vec<BatchFileItem>>(paths_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_files_sync(paths, &config).expect("should succeed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_batch_file_partial() {
|
||||
// batch_extract_file_sync mixed
|
||||
let paths_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"path":"text/plain.txt"},{"path":"/nonexistent/missing.pdf"}]"#).unwrap();
|
||||
let paths = serde_json::from_value::<Vec<BatchFileItem>>(paths_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_files_sync(paths, &config).expect("should succeed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_batch_file_sync_basic() {
|
||||
// Extract text from multiple files synchronously
|
||||
let paths_json: serde_json::Value =
|
||||
serde_json::from_str(r#"[{"path":"pdf/fake_memo.pdf"},{"path":"text/fake_text.txt"}]"#).unwrap();
|
||||
let paths = serde_json::from_value::<Vec<BatchFileItem>>(paths_json).unwrap();
|
||||
let config = Default::default();
|
||||
let _ = batch_extract_files_sync(paths, &config).expect("should succeed");
|
||||
}
|
||||
Reference in New Issue
Block a user