acid 0.0.1

API for acidarchive.com
Documentation
use crate::helpers::spawn_app;

#[tokio::test]
async fn login_returns_401_if_credentials_are_invalid() {
    let app = spawn_app().await;

    let body = r#"{
         "username": "&app.test_user.username",
         "password": "&app.test_user.password"
    }"#;

    let response = app.post_login(body.into()).await;
    assert_eq!(response.status().as_u16(), 401);
}

#[tokio::test]
async fn login_returns_200_if_credentials_are_valid() {
    let app = spawn_app().await;

    let body = serde_json::json!({
         "username": &app.test_user.username,
         "password": &app.test_user.password
    });

    let response = app.post_login(serde_json::to_string(&body).unwrap()).await;
    assert_eq!(response.status().as_u16(), 200);
}

#[tokio::test]
async fn login_returns_403_if_account_is_not_activated() {
    let app = spawn_app().await;

    let body = r#"{
        "username": "db303",
        "password": "House!909",
        "email": "acid@house.net"
    }"#;

    app.post_signup(body.into()).await;

    let response = app.post_login(body.into()).await;

    assert_eq!(response.status().as_u16(), 403);
}