mod common;
use hotdata::apis::uploads_api;
#[tokio::test]
async fn uploads_crud() {
let client = skip_if_no_creds!();
let config = client.configuration();
let contents = b"a,b\n1,2\n3,4\n";
let path = std::env::temp_dir().join(format!("{}.csv", common::sdkci_name("uploads-crud")));
std::fs::write(&path, contents).expect("writing the temp upload file should succeed");
let uploaded = uploads_api::upload_file(config, path.clone()).await;
let _ = std::fs::remove_file(&path);
let uploaded = uploaded.expect("upload_file should succeed");
assert!(!uploaded.id.is_empty(), "upload must return an id");
assert_eq!(
uploaded.size_bytes as usize,
contents.len(),
"reported size_bytes should match the uploaded file"
);
assert!(!uploaded.status.is_empty(), "upload must report a status");
let listing = uploads_api::list_uploads(config, None)
.await
.expect("list_uploads should succeed");
assert!(
listing.uploads.iter().any(|u| u.id == uploaded.id),
"uploaded file {} not present in list_uploads",
uploaded.id
);
}