use automapper_validation::{IssueKind, Severity, ValidationIssue};
fn missing_field_issue() -> ValidationIssue {
ValidationIssue::new(
Severity::Error,
IssueKind::MissingRequiredField {
field_name: "test".into(),
},
)
}
#[test]
fn instance_index_serializes_when_some() {
let issue = missing_field_issue()
.with_field_path("SG8/SG10/CCI/C240/7037")
.with_instance_index(2);
let json = serde_json::to_value(&issue).expect("serialize");
assert_eq!(
json.get("instance_index").and_then(|v| v.as_u64()),
Some(2),
"JSON should include instance_index=2 when set; got: {}",
json,
);
}
#[test]
fn instance_index_omitted_when_none() {
let issue = missing_field_issue().with_field_path("SG8/SG10/CCI/C240/7037");
let json = serde_json::to_value(&issue).expect("serialize");
assert!(
json.get("instance_index").is_none(),
"JSON should omit instance_index when None; got: {}",
json,
);
}
#[test]
fn instance_index_round_trips_through_json() {
let issue = missing_field_issue().with_instance_index(5);
let json = serde_json::to_string(&issue).unwrap();
let parsed: ValidationIssue = serde_json::from_str(&json).unwrap();
assert_eq!(parsed.instance_index, Some(5));
}