use protocol_droid_schema::wire::{v2024_11_05, v2026_07_28};
#[test]
fn the_readme_example_holds() -> Result<(), serde_json::Error> {
let old: v2024_11_05::CallToolResult =
serde_json::from_str(r#"{"content": [], "isError": true}"#)?;
let new: v2026_07_28::CallToolResult =
serde_json::from_str(r#"{"content": [], "resultType": "complete"}"#)?;
assert_eq!(old.is_error, Some(true));
assert_eq!(new.result_type, "complete");
assert!(!old.extra.contains_key("resultType"));
assert!(!new.extra.contains_key("isError"));
Ok(())
}
#[test]
fn an_absent_optional_member_does_not_come_back_as_null() -> Result<(), serde_json::Error> {
let decoded: v2024_11_05::CallToolResult = serde_json::from_str(r#"{"content": []}"#)?;
assert!(decoded.is_error.is_none());
let members = serde_json::to_value(&decoded)?
.as_object()
.cloned()
.unwrap_or_default();
assert!(!members.contains_key("isError"));
assert!(!members.contains_key("_meta"));
Ok(())
}