diff --git a/src/server/unittest/auth.rs b/src/server/unittest/auth.rs new file mode 100644 index 0000000..f0211a4 --- /dev/null +++ b/src/server/unittest/auth.rs @@ -0,0 +1,19 @@ +use super::UnitTestContext; +use crate::error::PixivDownloaderError; +use bytes::BytesMut; +use hyper::{Body, Request}; + +/// Test authentification methods +/// Returns token +pub async fn test(ctx: &UnitTestContext) -> Result { + let re = Request::builder().uri("/auth").body(Body::empty())?; + let res = ctx.request_json(re).await?.unwrap(); + assert_eq!(res["has_root_user"].as_bool(), Some(false)); + let re = Request::builder().uri("/auth/pubkey").body(Body::empty())?; + let res = ctx.request_json(re).await?.unwrap(); + let ok = res["ok"].as_bool().unwrap(); + if !ok { + panic!("Failed to get public key."); + } + Ok(BytesMut::new()) +} diff --git a/src/server/unittest/mod.rs b/src/server/unittest/mod.rs index c48a79e..8516c59 100644 --- a/src/server/unittest/mod.rs +++ b/src/server/unittest/mod.rs @@ -1,3 +1,4 @@ +mod auth; mod version; use super::context::ServerContext; @@ -76,5 +77,6 @@ async fn test() -> Result<(), PixivDownloaderError> { } let ctx = UnitTestContext::new().await; version::test(&ctx).await?; + auth::test(&ctx).await?; Ok(()) }