From dad067da447f121df1392fe6032b0829380abfea Mon Sep 17 00:00:00 2001 From: Ali Date: Thu, 3 Oct 2024 12:35:53 +0330 Subject: [PATCH] removing useless Generic T on `selective`, adding tests --- .../src/types/reply_keyboard_markup.rs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/crates/teloxide-core/src/types/reply_keyboard_markup.rs b/crates/teloxide-core/src/types/reply_keyboard_markup.rs index 4b38b2df..1c9c5935 100644 --- a/crates/teloxide-core/src/types/reply_keyboard_markup.rs +++ b/crates/teloxide-core/src/types/reply_keyboard_markup.rs @@ -125,7 +125,7 @@ impl KeyboardMarkup { /// Sets [`selective`] to `true`. /// /// [`selective`]: KeyboardMarkup::selective - pub fn selective(self) -> Self { + pub fn selective(self) -> Self { Self { selective: true, ..self } } } @@ -146,6 +146,26 @@ mod tests { "selective": false } "#; - serde_json::from_str::(data).unwrap(); + assert!(serde_json::from_str::(data).is_ok()) + } + #[test] + fn serialize() { + let keyboard = vec![ + vec![ + KeyboardButton::new("a"), + KeyboardButton::new("b"), + KeyboardButton::new("c"), + KeyboardButton::new("d"), + ] + ]; + let keyboard_markup = KeyboardMarkup::new(keyboard) + .persistent() + .resize_keyboard() + .selective() + .one_time_keyboard(); + let expected = r#"{"keyboard":[[{"text":"a"},{"text":"b"},{"text":"c"},{"text":"d"}]],"is_persistent":true,"resize_keyboard":true,"one_time_keyboard":true,"selective":true}"#; + + assert!(serde_json::ser::to_string(&keyboard_markup).is_ok_and(|s|s.eq(expected))); + } }