Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions tonic-types/src/richer_error/std_messages/bad_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ impl From<FieldViolation> for pb::bad_request::FieldViolation {
pb::bad_request::FieldViolation {
field: value.field,
description: value.description,
..Default::default()
reason: value.reason,
localized_message: value.localized_message.map(Into::into),
}
}
}
Expand Down Expand Up @@ -159,12 +160,12 @@ impl From<BadRequest> for pb::BadRequest {
#[cfg(test)]
mod tests {
use super::super::super::{FromAny, IntoAny};
use super::BadRequest;
use super::{BadRequest, FieldViolation, LocalizedMessage};

#[test]
fn gen_bad_request() {
let mut br_details = BadRequest::new(Vec::new());
let formatted = format!("{br_details:?}");
let empty_br_details = BadRequest::new(Vec::new());
let formatted = format!("{empty_br_details:?}");

let expected = "BadRequest { field_violations: [] }";

Expand All @@ -174,17 +175,22 @@ mod tests {
);

assert!(
br_details.is_empty(),
empty_br_details.is_empty(),
"empty BadRequest returns 'false' from .is_empty()"
);

br_details
.add_violation("field_a", "description_a")
.add_violation("field_b", "description_b");
let mut br_details = BadRequest::new(vec![FieldViolation {
field: "field_a".to_string(),
description: "description_a".to_string(),
reason: "REASON".to_string(),
localized_message: Some(LocalizedMessage::new("en-US", "localized error")),
}]);

br_details.add_violation("field_b", "description_b");

let formatted = format!("{br_details:?}");

let expected_filled = "BadRequest { field_violations: [FieldViolation { field: \"field_a\", description: \"description_a\", reason: \"\", localized_message: None }, FieldViolation { field: \"field_b\", description: \"description_b\", reason: \"\", localized_message: None }] }";
let expected_filled = "BadRequest { field_violations: [FieldViolation { field: \"field_a\", description: \"description_a\", reason: \"REASON\", localized_message: Some(LocalizedMessage { locale: \"en-US\", message: \"localized error\" }) }, FieldViolation { field: \"field_b\", description: \"description_b\", reason: \"\", localized_message: None }] }";

assert!(
formatted.eq(expected_filled),
Expand All @@ -199,7 +205,7 @@ mod tests {
let gen_any = br_details.into_any();
let formatted = format!("{gen_any:?}");

let expected = "Any { type_url: \"type.googleapis.com/google.rpc.BadRequest\", value: [10, 24, 10, 7, 102, 105, 101, 108, 100, 95, 97, 18, 13, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 10, 24, 10, 7, 102, 105, 101, 108, 100, 95, 98, 18, 13, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 98] }";
let expected = "Any { type_url: \"type.googleapis.com/google.rpc.BadRequest\", value: [10, 58, 10, 7, 102, 105, 101, 108, 100, 95, 97, 18, 13, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 26, 6, 82, 69, 65, 83, 79, 78, 34, 24, 10, 5, 101, 110, 45, 85, 83, 18, 15, 108, 111, 99, 97, 108, 105, 122, 101, 100, 32, 101, 114, 114, 111, 114, 10, 24, 10, 7, 102, 105, 101, 108, 100, 95, 98, 18, 13, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 98] }";

assert!(
formatted.eq(expected),
Expand Down
Loading