vkteams_bot/api/chats/
set_about.rs

1//! Set a chat's about text method `chats/setAbout`
2//! [Nore info](https://teams.vk.com/botapi/#/chats/get_chats_setAbout)
3use crate::api::types::*;
4bot_api_method! {
5    method = "chats/setAbout",
6    request = RequestChatsSetAbout {
7        required {
8            chat_id: ChatId,
9            about: String,
10        },
11        optional {}
12    },
13    response = ResponseChatsSetAbout {},
14}
15
16#[cfg(test)]
17mod tests {
18    use super::*;
19    use crate::api::types::ChatId;
20    use serde_json::json;
21
22    #[test]
23    fn test_request_chats_set_about_serialize() {
24        let req = RequestChatsSetAbout {
25            chat_id: ChatId::from("c1"),
26            about: "about text".to_string(),
27        };
28        let val = serde_json::to_value(&req).unwrap();
29        assert_eq!(val["chatId"], "c1");
30        assert_eq!(val["about"], "about text");
31    }
32
33    #[test]
34    fn test_request_chats_set_about_deserialize() {
35        let val = json!({"chatId": "c2", "about": "desc"});
36        let req: RequestChatsSetAbout = serde_json::from_value(val).unwrap();
37        assert_eq!(req.chat_id.0, "c2");
38        assert_eq!(req.about, "desc");
39    }
40
41    #[test]
42    fn test_request_chats_set_about_empty_about() {
43        let val = json!({"chatId": "c3", "about": ""});
44        let req: RequestChatsSetAbout = serde_json::from_value(val).unwrap();
45        assert_eq!(req.about, "");
46    }
47
48    #[test]
49    fn test_request_chats_set_about_missing_about() {
50        let val = json!({"chatId": "c4"});
51        let res: Result<RequestChatsSetAbout, _> = serde_json::from_value(val);
52        assert!(res.is_err());
53    }
54
55    #[test]
56    fn test_request_chats_set_about_invalid_chat_id() {
57        let val = json!({"chatId": 123, "about": "desc"});
58        let res: Result<RequestChatsSetAbout, _> = serde_json::from_value(val);
59        assert!(res.is_err());
60    }
61
62    #[test]
63    fn test_response_chats_set_about_serialize_deserialize() {
64        let resp = ResponseChatsSetAbout {};
65        let val = serde_json::to_value(&resp).unwrap();
66        let resp2: ResponseChatsSetAbout = serde_json::from_value(val).unwrap();
67        let _ = resp2;
68    }
69}