diff --git a/crates/s3/src/client.rs b/crates/s3/src/client.rs index 75f0db5..b93e097 100644 --- a/crates/s3/src/client.rs +++ b/crates/s3/src/client.rs @@ -3172,6 +3172,17 @@ mod tests { assert!(request.headers().get("x-rustfs-force-delete").is_none()); } + #[tokio::test] + async fn delete_object_wrapper_uses_default_options_without_rustfs_header() { + let (client, request_receiver) = test_s3_client(None); + let path = RemotePath::new("test", "bucket", "key.txt"); + + let _ = ObjectStore::delete_object(&client, &path).await; + + let request = request_receiver.expect_request(); + assert!(request.headers().get("x-rustfs-force-delete").is_none()); + } + #[tokio::test] async fn delete_objects_with_force_delete_sets_rustfs_header() { let response = http::Response::builder() @@ -3195,6 +3206,23 @@ mod tests { assert_eq!(request.headers().get("x-rustfs-force-delete"), Some("true")); } + #[tokio::test] + async fn delete_objects_wrapper_uses_default_options_without_rustfs_header() { + let response = http::Response::builder() + .status(200) + .body(SdkBody::from( + r#" +"#, + )) + .expect("build delete objects response"); + let (client, request_receiver) = test_s3_client(Some(response)); + + let _ = ObjectStore::delete_objects(&client, "bucket", vec!["key.txt".to_string()]).await; + + let request = request_receiver.expect_request(); + assert!(request.headers().get("x-rustfs-force-delete").is_none()); + } + #[tokio::test] async fn read_next_part_fills_buffer_until_eof() { use tokio::io::AsyncWriteExt;