51 lines
1.2 KiB
Rust
51 lines
1.2 KiB
Rust
//! Copyright (c) 2022-2026 GitDataAi All rights reserved.
|
|
|
|
mod common;
|
|
|
|
use gitks::pb::*;
|
|
use tokio_stream::StreamExt;
|
|
|
|
fn hdr() -> RepositoryHeader {
|
|
RepositoryHeader {
|
|
relative_path: "test-repo".into(),
|
|
..Default::default()
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn test_index_pack_empty_data() {
|
|
let (_dir, gb) = common::setup_bare_repo();
|
|
let result = gb.index_pack(vec![IndexPackRequest {
|
|
repository: Some(hdr()),
|
|
data: vec![],
|
|
done: false,
|
|
strict: false,
|
|
keep: false,
|
|
}]);
|
|
assert!(result.is_err());
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_pack_objects_all() {
|
|
let (_dir, gb) = common::setup_bare_repo();
|
|
|
|
let mut stream = gb
|
|
.pack_objects(PackObjectsRequest {
|
|
repository: Some(hdr()),
|
|
options: None,
|
|
})
|
|
.await
|
|
.unwrap();
|
|
|
|
let mut total_bytes = 0usize;
|
|
let mut has_error = false;
|
|
while let Some(chunk) = stream.next().await {
|
|
match chunk {
|
|
Ok(c) => total_bytes += c.data.len(),
|
|
Err(_) => has_error = true,
|
|
}
|
|
}
|
|
assert!(!has_error, "pack_objects stream had errors");
|
|
assert!(total_bytes > 0, "pack_objects produced no data");
|
|
}
|