From c6cd364b9e9870c90afcde19b76345122195680c Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Thu, 1 Dec 2022 14:12:57 +0100 Subject: [PATCH] test: add music_charts test --- README.md | 2 +- tests/youtube.rs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ede6049..5d29eed 100644 --- a/README.md +++ b/README.md @@ -27,5 +27,5 @@ inspired by [NewPipe](https://github.com/TeamNewPipe/NewPipeExtractor). - [X] **Radio** - [X] **Track details** (lyrics, recommendations) - [ ] **Moods** -- [ ] **Charts** +- [X] **Charts** - [X] **New** diff --git a/tests/youtube.rs b/tests/youtube.rs index c700aab..e9aac0b 100644 --- a/tests/youtube.rs +++ b/tests/youtube.rs @@ -4,6 +4,7 @@ use std::fmt::Display; use fancy_regex::Regex; use once_cell::sync::Lazy; use rstest::rstest; +use rustypipe::param::Country; use time::macros::date; use time::OffsetDateTime; @@ -2050,6 +2051,35 @@ async fn music_radio_playlist_not_found() { } } +#[rstest] +#[case::de( + Country::De, + "PL4fGSI1pDJn4X-OicSCOy-dChXWdTgziQ", + "PL0sHkSjKd2rpxgOMD-vlUlIDqvQ5ChYJh" +)] +#[case::us( + Country::Us, + "PL4fGSI1pDJn69On1f-8NAvX_CYlx7QyZc", + "PLrEnWoR732-DtKgaDdnPkezM_nDidBU9H" +)] +#[tokio::test] +async fn music_charts(#[case] country: Country, #[case] plid_top: &str, #[case] plid_trend: &str) { + let rp = RustyPipe::builder().strict().build(); + let charts = rp.query().music_charts(Some(country)).await.unwrap(); + + assert_eq!(charts.top_playlist_id.unwrap(), plid_top); + assert_eq!(charts.trending_playlist_id.unwrap(), plid_trend); + + assert_gte(charts.top_tracks.len(), 40, "top tracks"); + assert_gte(charts.artists.len(), 40, "top artists"); + assert_gte(charts.trending_tracks.len(), 20, "trending tracks"); + + // Chart playlists only available in USA + if country == Country::Us { + assert_gte(charts.playlists.len(), 8, "charts playlists"); + } +} + #[tokio::test] async fn music_new_albums() { let rp = RustyPipe::builder().strict().build();