cider-api 0.1.1

Async Rust client for the Cider music player REST API
Documentation
mod common;

use wiremock::matchers::{body_json, method, path};
use wiremock::{Mock, ResponseTemplate};

#[tokio::test]
async fn add_to_library_ok() {
    let (server, client) = common::setup().await;
    Mock::given(method("POST"))
        .and(path("/api/v1/playback/add-to-library"))
        .respond_with(ResponseTemplate::new(200))
        .expect(1)
        .mount(&server)
        .await;
    client.add_to_library().await.unwrap();
}

#[tokio::test]
async fn set_rating_like() {
    let (server, client) = common::setup().await;
    Mock::given(method("POST"))
        .and(path("/api/v1/playback/set-rating"))
        .and(body_json(serde_json::json!({"rating": 1})))
        .respond_with(ResponseTemplate::new(200))
        .expect(1)
        .mount(&server)
        .await;
    client.set_rating(1).await.unwrap();
}

#[tokio::test]
async fn set_rating_dislike() {
    let (server, client) = common::setup().await;
    Mock::given(method("POST"))
        .and(path("/api/v1/playback/set-rating"))
        .and(body_json(serde_json::json!({"rating": -1})))
        .respond_with(ResponseTemplate::new(200))
        .expect(1)
        .mount(&server)
        .await;
    client.set_rating(-1).await.unwrap();
}

#[tokio::test]
async fn set_rating_clamps_above_1() {
    let (server, client) = common::setup().await;
    Mock::given(method("POST"))
        .and(path("/api/v1/playback/set-rating"))
        .and(body_json(serde_json::json!({"rating": 1})))
        .respond_with(ResponseTemplate::new(200))
        .expect(1)
        .mount(&server)
        .await;
    client.set_rating(5).await.unwrap();
}

#[tokio::test]
async fn set_rating_clamps_below_neg1() {
    let (server, client) = common::setup().await;
    Mock::given(method("POST"))
        .and(path("/api/v1/playback/set-rating"))
        .and(body_json(serde_json::json!({"rating": -1})))
        .respond_with(ResponseTemplate::new(200))
        .expect(1)
        .mount(&server)
        .await;
    client.set_rating(-10).await.unwrap();
}