refactor: extract unit tests into tests directory
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
use super::*;
|
||||
#[test]
|
||||
fn catalog_and_actual_episode_numbers_remain_distinct() {
|
||||
let media = serde_json::json!({"id":"opaque_ID", "title":{"english":"The Apothecary Diaries", "romaji":"Kusuriya no Hitorigoto"}, "episode_count":12, "episode_counts":{"sub":null}, "episode_duration_minutes":null});
|
||||
let rows = catalog(vec![media.clone()]).unwrap();
|
||||
assert_eq!(rows[0].id, "opaque_ID");
|
||||
assert!(rows[0].metadata["episode_counts"]["sub"].is_null());
|
||||
assert!(catalog(vec![media.clone(), media.clone()]).is_err());
|
||||
let episode = serde_json::json!({"episode_number":3,"absolute_number":49,"title":"Returned","synopsis":"Actual synopsis","aired_on":"2026-10-02","duration_seconds":1500});
|
||||
let detail = || Detail {
|
||||
media: media.clone(),
|
||||
episodes: vec![episode.clone()],
|
||||
};
|
||||
let data = series("opaque_ID", detail()).unwrap();
|
||||
assert_eq!(data.episodes.len(), 1);
|
||||
assert_eq!(data.episodes[0].identity.episode, 3);
|
||||
assert_eq!(data.episodes[0].identity.media_id, "opaque_ID");
|
||||
assert_eq!(data.episodes[0].duration_seconds, Some(1500));
|
||||
assert_eq!(
|
||||
data.episodes[0].synopsis.as_deref(),
|
||||
Some("Actual synopsis")
|
||||
);
|
||||
assert!(data.episodes[0].snapshot(&data.media).channel_id.is_none());
|
||||
assert!(series("other", detail()).is_err());
|
||||
assert!(
|
||||
series(
|
||||
"opaque_ID",
|
||||
Detail {
|
||||
media: media.clone(),
|
||||
episodes: vec![episode.clone(), episode]
|
||||
}
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
assert!(
|
||||
series(
|
||||
"opaque_ID",
|
||||
Detail {
|
||||
media,
|
||||
episodes: vec![serde_json::json!({"absolute_number":49})]
|
||||
}
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
assert!(slug("薬屋").is_err());
|
||||
assert_eq!(slug(" A Test!! -- Title ").unwrap(), "a-test-title");
|
||||
assert_eq!(slug(" --Title-- ").unwrap(), "-title-");
|
||||
assert_eq!(slug("École déjà-vu").unwrap(), "ecole-deja-vu");
|
||||
assert_eq!(slug("Cafe\u{0301}").unwrap(), "cafe");
|
||||
assert_eq!(slug("A薬屋 KK İ").unwrap(), "kk-i");
|
||||
assert_eq!(
|
||||
slug("\u{feff}A\u{00a0}B\u{2003}C\u{feff}").unwrap(),
|
||||
"a-b-c"
|
||||
);
|
||||
assert_eq!(slug("A\u{0085}B").unwrap(), "ab");
|
||||
assert!(slug("!!薬屋!!").is_err());
|
||||
assert_eq!(
|
||||
title(&serde_json::json!({"id":"id","title":{"english":"AB","romaji":"CD"}})).unwrap(),
|
||||
"AB"
|
||||
);
|
||||
assert_eq!(
|
||||
title(&serde_json::json!({"id":"id","title":{"english":"𐀀A","romaji":"BC"}})).unwrap(),
|
||||
"BC"
|
||||
);
|
||||
assert_eq!(
|
||||
title(&serde_json::json!({"id":"id","title":{"native":""}})).unwrap(),
|
||||
""
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user