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) =