diff --git a/rustfs/src/server/layer.rs b/rustfs/src/server/layer.rs
index e4b9c7743..df272d190 100644
--- a/rustfs/src/server/layer.rs
+++ b/rustfs/src/server/layer.rs
@@ -871,6 +871,30 @@ mod tests {
);
}
+ #[tokio::test]
+ async fn test_fix_s3_error_message_in_xml_reports_changed_body() {
+ let body = Full::from(Bytes::from_static(b"SignatureDoesNotMatch"));
+
+ let (fixed, changed) = fix_s3_error_message_in_xml(body).await.unwrap();
+ let bytes = BodyExt::collect(fixed).await.unwrap().to_bytes();
+
+ assert!(changed);
+ assert!(bytes.starts_with(b"SignatureDoesNotMatch"));
+ assert!(bytes.ends_with(b""));
+ }
+
+ #[tokio::test]
+ async fn test_fix_s3_error_message_in_xml_reports_unchanged_body() {
+ let input = Bytes::from_static(b"AccessDenied");
+ let body = Full::from(input.clone());
+
+ let (fixed, changed) = fix_s3_error_message_in_xml(body).await.unwrap();
+ let bytes = BodyExt::collect(fixed).await.unwrap().to_bytes();
+
+ assert!(!changed);
+ assert_eq!(bytes, input);
+ }
+
#[test]
fn test_insert_missing_signature_error_message() {
let (fixed, changed) =