Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
radicle: Fix `cob::common::Title::new`
Defelo committed 7 months ago
commit e7e12ca0ea97f5279da4ed1ba709f065e901cd4e
parent 5fea9ac05c7296dce3f8dec363b7442bec929c55
1 file changed +11 -2
modified crates/radicle/src/cob/common.rs
@@ -43,7 +43,7 @@ impl Deref for Timestamp {
    }
}

-
#[derive(Error, Debug)]
+
#[derive(Error, Debug, PartialEq, Eq)]
pub enum TitleError {
    #[error("empty title")]
    EmptyTitle,
@@ -69,12 +69,13 @@ impl Title {
    /// [`TitleError::InvalidTitle`]: the provided `title` contained invalid
    /// characters
    pub fn new(title: &str) -> Result<Self, TitleError> {
+
        let title = title.trim();
        if title.contains('\n') || title.contains('\r') {
            Err(TitleError::InvalidTitle)
        } else if title.is_empty() {
            Err(TitleError::EmptyTitle)
        } else {
-
            Ok(Self(title.trim().to_string()))
+
            Ok(Self(title.into()))
        }
    }
}
@@ -494,6 +495,14 @@ mod test {
    use super::*;

    #[test]
+
    fn test_title() {
+
        assert_eq!(Title::new(""), Err(TitleError::EmptyTitle));
+
        assert_eq!(Title::new(" "), Err(TitleError::EmptyTitle));
+
        assert_eq!(Title::new("foo\nbar"), Err(TitleError::InvalidTitle));
+
        assert_eq!(Title::new(" valid title \n").unwrap().0, "valid title");
+
    }
+

+
    #[test]
    fn test_color() {
        let c = Color::from_str("#ffccaa").unwrap();
        assert_eq!(c.to_string(), "#ffccaa".to_owned());