konnektoren_core/challenges/
review.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
4pub struct Review {
5 pub challenge_id: String,
6 pub rating: u8,
7 pub comment: Option<String>,
8}
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13
14 #[test]
15 fn new_review() {
16 let challenge_id = "123".to_string();
17 let rating = 5;
18 let review = Review {
19 challenge_id: challenge_id.clone(),
20 rating,
21 comment: None,
22 };
23
24 assert_eq!(review.challenge_id, challenge_id);
25 assert_eq!(review.rating, rating);
26 assert_eq!(review.comment, None);
27 }
28
29 #[test]
30 fn serialize_review() {
31 let json_str = r#"{"challenge_id":"123","rating":5,"comment":null}"#;
32 let review = Review {
33 challenge_id: "123".to_string(),
34 rating: 5,
35 comment: None,
36 };
37
38 let serialized = serde_json::to_string(&review).unwrap();
39 assert_eq!(serialized, json_str);
40 }
41}