konnektoren_core/challenges/
review.rs

1use 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}