diff --git a/src/profile.rs b/src/profile.rs index 41af8f1..f26d01e 100644 --- a/src/profile.rs +++ b/src/profile.rs @@ -88,6 +88,7 @@ pub struct FormField { pub name: String, #[serde(default)] pub hide: bool, + pub default_value: Option } #[derive(Deserialize)] @@ -263,4 +264,24 @@ mod tests { Err(e) => panic!("Cannot deserialize profile: {}", e), } } + + #[test] + fn should_deserialize_form_fields_with_default_value() { + let content = "forms: + - name: 'DNPM Therapieplan' + form_fields: + - name: formularfeld_to_keep + default_value: 'X' + "; + + match Profile::from_str(content) { + Ok(profile) => { + assert_eq!(profile.forms.len(), 1); + assert_eq!(profile.forms[0].name, "DNPM Therapieplan"); + assert_eq!(profile.forms[0].form_fields[0].name, "formularfeld_to_keep"); + assert_eq!(profile.forms[0].form_fields[0].default_value, Some("X".to_string())); + } + Err(e) => panic!("Cannot deserialize profile: {}", e), + } + } }