refactor: update rating validation logic — enforce minimum rating value
All checks were successful
CI / Check / Test (push) Successful in 1h5m56s
All checks were successful
CI / Check / Test (push) Successful in 1h5m56s
This commit is contained in:
@@ -104,12 +104,12 @@ pub fn review_to_ap_object(review: &Review, input: ReviewApInput) -> ReviewObjec
|
||||
let tag = vec![
|
||||
ApHashtag {
|
||||
kind: "Hashtag".to_string(),
|
||||
href: Url::parse(&format!("{}/tags/moviesdiary", &base_url)).expect("valid base_url"),
|
||||
href: Url::parse(&format!("{}/tags/moviesdiary", base_url)).expect("valid base_url"),
|
||||
name: "#MoviesDiary".to_string(),
|
||||
},
|
||||
ApHashtag {
|
||||
kind: "Hashtag".to_string(),
|
||||
href: Url::parse(&format!("{}/tags/{}", &base_url, normalized.to_lowercase()))
|
||||
href: Url::parse(&format!("{}/tags/{}", base_url, normalized.to_lowercase()))
|
||||
.expect("valid base_url"),
|
||||
name: format!("#{}", normalized),
|
||||
},
|
||||
|
||||
@@ -9,13 +9,14 @@ fn movie_id_generate_unique() {
|
||||
|
||||
#[test]
|
||||
fn rating_valid_range() {
|
||||
assert!(Rating::new(0).is_ok());
|
||||
assert!(Rating::new(1).is_ok());
|
||||
assert!(Rating::new(5).is_ok());
|
||||
assert_eq!(Rating::new(3).unwrap().value(), 3);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rating_invalid() {
|
||||
assert!(Rating::new(0).is_err());
|
||||
assert!(Rating::new(6).is_err());
|
||||
assert!(Rating::new(255).is_err());
|
||||
}
|
||||
|
||||
@@ -86,10 +86,11 @@ pub fn format_watched_at(dt: &chrono::NaiveDateTime) -> String {
|
||||
pub struct Rating(u8);
|
||||
|
||||
impl Rating {
|
||||
const MIN: u8 = 1;
|
||||
const MAX: u8 = 5;
|
||||
|
||||
pub fn new(value: u8) -> Result<Self, DomainError> {
|
||||
if value <= Self::MAX {
|
||||
if (Self::MIN..=Self::MAX).contains(&value) {
|
||||
Ok(Self(value))
|
||||
} else {
|
||||
Err(DomainError::InvalidRating {
|
||||
|
||||
Reference in New Issue
Block a user