diff --git a/tests/empty.rs b/tests/empty.rs index bce4f921..7882edf6 100644 --- a/tests/empty.rs +++ b/tests/empty.rs @@ -18,3 +18,25 @@ fn empty_deserializes() { assert_eq!(s.foo, 0); assert_eq!(s.bar, 0); } + +#[derive(Debug, Serialize, Deserialize, PartialEq)] +struct A { + b: Option, +} +#[derive(Debug, Serialize, Deserialize, PartialEq)] +struct B {} + +#[test] +fn empty_inner_obj() { + let a = A { + b: Some(B {}) + }; + + let de_from_default_object: A = Config::builder() + .add_source(Config::try_from(&a).unwrap()) + .build() + .unwrap() + .try_deserialize() + .unwrap(); + assert_eq!(a, de_from_default_object); // Failed +}