From 31af5f5e3648d6551842654f23db04caa29d2c18 Mon Sep 17 00:00:00 2001 From: KeisukeYamashita <19yamashita15@gmail.com> Date: Fri, 16 Feb 2024 22:23:35 +0100 Subject: [PATCH] fix(cli): empty string check Signed-off-by: KeisukeYamashita <19yamashita15@gmail.com> --- src/rule/description_empty.rs | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/rule/description_empty.rs b/src/rule/description_empty.rs index 4153e47..d853f5a 100644 --- a/src/rule/description_empty.rs +++ b/src/rule/description_empty.rs @@ -23,14 +23,17 @@ impl Rule for DescriptionEmpty { } fn validate(&self, message: &Message) -> Option { - if message.description.is_none() { - return Some(Violation { + match message.description { + None => Some(Violation { level: self.level.unwrap_or(Self::LEVEL), message: self.message(message), - }); + }), + Some(ref desc) if desc.is_empty() => Some(Violation { + level: self.level.unwrap_or(Self::LEVEL), + message: self.message(message), + }), + _ => None, } - - None } } @@ -84,4 +87,26 @@ mod tests { "description is empty or missing space in the beginning".to_string() ); } + + #[test] + fn test_blank_description() { + let rule = DescriptionEmpty::default(); + let message = Message { + body: None, + description: Some("".to_string()), + footers: None, + r#type: Some("feat".to_string()), + raw: "(scope):".to_string(), + scope: Some("scope".to_string()), + subject: None, + }; + + let violation = rule.validate(&message); + assert!(violation.is_some()); + assert_eq!(violation.clone().unwrap().level, Level::Error); + assert_eq!( + violation.unwrap().message, + "description is empty or missing space in the beginning".to_string() + ); + } }