Adds genre endpoint tests
This commit is contained in:
parent
7f3e091e32
commit
071aced10a
2 changed files with 170 additions and 0 deletions
|
@ -133,3 +133,124 @@ async fn recent_golden_path_api_v7() {
|
||||||
assert_eq!(entries.len(), 3);
|
assert_eq!(entries.len(), 3);
|
||||||
assert!(entries[0].path.starts_with("collection/"));
|
assert!(entries[0].path.starts_with("collection/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genres_requires_auth() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
let request = protocol::genres::<V8>();
|
||||||
|
let response = service.fetch(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genres_golden_path() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
service.complete_initial_setup().await;
|
||||||
|
service.login_admin().await;
|
||||||
|
service.index().await;
|
||||||
|
service.login().await;
|
||||||
|
|
||||||
|
let request = protocol::genres::<V8>();
|
||||||
|
let response = service
|
||||||
|
.fetch_json::<_, Vec<dto::GenreHeader>>(&request)
|
||||||
|
.await;
|
||||||
|
assert_eq!(response.status(), StatusCode::OK);
|
||||||
|
let entries = response.body();
|
||||||
|
assert_eq!(entries.len(), 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_requires_auth() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
let request = protocol::genre::<V8>("Metal");
|
||||||
|
let response = service.fetch(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_golden_path() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
service.complete_initial_setup().await;
|
||||||
|
service.login_admin().await;
|
||||||
|
service.index().await;
|
||||||
|
service.login().await;
|
||||||
|
|
||||||
|
let request = protocol::genre::<V8>("Metal");
|
||||||
|
let response = service.fetch_json::<_, dto::Genre>(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::OK);
|
||||||
|
let genre = response.body();
|
||||||
|
assert_eq!(genre.header.name, "Metal");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_albums_requires_auth() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
let request = protocol::genre_albums::<V8>("Metal");
|
||||||
|
let response = service.fetch(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_albums_golden_path() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
service.complete_initial_setup().await;
|
||||||
|
service.login_admin().await;
|
||||||
|
service.index().await;
|
||||||
|
service.login().await;
|
||||||
|
|
||||||
|
let request = protocol::genre_albums::<V8>("Metal");
|
||||||
|
let response = service
|
||||||
|
.fetch_json::<_, Vec<dto::AlbumHeader>>(&request)
|
||||||
|
.await;
|
||||||
|
assert_eq!(response.status(), StatusCode::OK);
|
||||||
|
let entries = response.body();
|
||||||
|
assert_eq!(entries.len(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_artists_requires_auth() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
let request = protocol::genre_artists::<V8>("Metal");
|
||||||
|
let response = service.fetch(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_artists_golden_path() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
service.complete_initial_setup().await;
|
||||||
|
service.login_admin().await;
|
||||||
|
service.index().await;
|
||||||
|
service.login().await;
|
||||||
|
|
||||||
|
let request = protocol::genre_artists::<V8>("Metal");
|
||||||
|
let response = service
|
||||||
|
.fetch_json::<_, Vec<dto::ArtistHeader>>(&request)
|
||||||
|
.await;
|
||||||
|
assert_eq!(response.status(), StatusCode::OK);
|
||||||
|
let entries = response.body();
|
||||||
|
assert_eq!(entries.len(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_songs_requires_auth() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
let request = protocol::genre_songs::<V8>("Metal");
|
||||||
|
let response = service.fetch(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn genre_songs_golden_path() {
|
||||||
|
let mut service = ServiceType::new(&test_name!()).await;
|
||||||
|
service.complete_initial_setup().await;
|
||||||
|
service.login_admin().await;
|
||||||
|
service.index().await;
|
||||||
|
service.login().await;
|
||||||
|
|
||||||
|
let request = protocol::genre_songs::<V8>("Metal");
|
||||||
|
let response = service.fetch_json::<_, dto::SongList>(&request).await;
|
||||||
|
assert_eq!(response.status(), StatusCode::OK);
|
||||||
|
let song_list = response.body();
|
||||||
|
assert_eq!(song_list.paths.len(), 5);
|
||||||
|
}
|
||||||
|
|
|
@ -186,6 +186,55 @@ pub fn flatten<VERSION: ProtocolVersion>(path: &Path) -> Request<()> {
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn genres<VERSION: ProtocolVersion>() -> Request<()> {
|
||||||
|
Request::builder()
|
||||||
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
.method(Method::GET)
|
||||||
|
.uri("/api/genres")
|
||||||
|
.body(())
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn genre<VERSION: ProtocolVersion>(genre: &str) -> Request<()> {
|
||||||
|
let endpoint = format!("/api/genres/{}", url_encode(genre));
|
||||||
|
Request::builder()
|
||||||
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
.method(Method::GET)
|
||||||
|
.uri(endpoint)
|
||||||
|
.body(())
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn genre_albums<VERSION: ProtocolVersion>(genre: &str) -> Request<()> {
|
||||||
|
let endpoint = format!("/api/genres/{}/albums", url_encode(genre));
|
||||||
|
Request::builder()
|
||||||
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
.method(Method::GET)
|
||||||
|
.uri(endpoint)
|
||||||
|
.body(())
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn genre_artists<VERSION: ProtocolVersion>(genre: &str) -> Request<()> {
|
||||||
|
let endpoint = format!("/api/genres/{}/artists", url_encode(genre));
|
||||||
|
Request::builder()
|
||||||
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
.method(Method::GET)
|
||||||
|
.uri(endpoint)
|
||||||
|
.body(())
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn genre_songs<VERSION: ProtocolVersion>(genre: &str) -> Request<()> {
|
||||||
|
let endpoint = format!("/api/genres/{}/songs", url_encode(genre));
|
||||||
|
Request::builder()
|
||||||
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
.method(Method::GET)
|
||||||
|
.uri(endpoint)
|
||||||
|
.body(())
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn random<VERSION: ProtocolVersion>() -> Request<()> {
|
pub fn random<VERSION: ProtocolVersion>() -> Request<()> {
|
||||||
Request::builder()
|
Request::builder()
|
||||||
.header("Accept-Version", VERSION::header_value())
|
.header("Accept-Version", VERSION::header_value())
|
||||||
|
|
Loading…
Add table
Reference in a new issue