diff --git a/src/models/servarr_models.rs b/src/models/servarr_models.rs index 71c74fb9..ef9d09a3 100644 --- a/src/models/servarr_models.rs +++ b/src/models/servarr_models.rs @@ -354,6 +354,7 @@ pub struct Update { pub installed: bool, pub latest: bool, pub installed_on: Option>, + #[serde(default)] pub changes: UpdateChanges, } diff --git a/src/models/servarr_models_tests.rs b/src/models/servarr_models_tests.rs index e57dac7d..52dd4f2f 100644 --- a/src/models/servarr_models_tests.rs +++ b/src/models/servarr_models_tests.rs @@ -4,6 +4,7 @@ mod tests { use crate::models::servarr_models::{ AuthenticationMethod, AuthenticationRequired, CertificateValidation, Indexer, QualityProfile, + Update, UpdateChanges, }; #[test] @@ -67,4 +68,26 @@ mod tests { assert_eq!(expected_quality_profile, quality_profile); } + + #[test] + fn test_update_deserializes_when_changes_is_absent() { + let update_json = r#"{ + "version": "0.4.18.2805", + "releaseDate": "2025-06-15T06:22:22Z", + "installed": false, + "latest": true, + "installedOn": "2025-06-22T05:09:11Z" + }"#; + + let update = serde_json::from_str::(update_json); + + assert_ok!(&update); + assert_eq!( + update.unwrap().changes, + UpdateChanges { + new: None, + fixed: None, + } + ); + } }