From 8c2076925c9839f37c7d8942caeabe9f66ab13a3 Mon Sep 17 00:00:00 2001 From: Ivar Flakstad <69173633+ivarflakstad@users.noreply.github.com> Date: Mon, 25 Mar 2024 21:11:32 +0100 Subject: [PATCH] Add integration test for getting and creating user. --- server/src/users/mod.rs | 4 ++-- server/src/users/selectors.rs | 8 ++------ server/src/users/services.rs | 5 ++++- server/tests/users.rs | 23 +++++++++++++++++++++++ 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/server/src/users/mod.rs b/server/src/users/mod.rs index 82e986b7..ca934b5c 100644 --- a/server/src/users/mod.rs +++ b/server/src/users/mod.rs @@ -1,5 +1,5 @@ pub use models::*; mod models; -mod selectors; -mod services; +pub mod selectors; +pub mod services; diff --git a/server/src/users/selectors.rs b/server/src/users/selectors.rs index 4727f8a5..445afaf2 100644 --- a/server/src/users/selectors.rs +++ b/server/src/users/selectors.rs @@ -1,14 +1,10 @@ -use axum::extract::State; -use sqlx::types::uuid; use sqlx::{Acquire, PgPool}; +use sqlx::types::uuid; use crate::users::User; #[tracing::instrument(level = "debug", ret, err)] -async fn get_user( - State(pool): State, - user_id: uuid::Uuid, -) -> color_eyre::Result> { +pub async fn get_user(pool: PgPool, user_id: uuid::Uuid) -> color_eyre::Result> { let mut conn = pool.acquire().await?; let user = sqlx::query_as!(User, "SELECT * FROM users WHERE user_id = $1", user_id) .fetch_optional(conn.acquire().await?) diff --git a/server/src/users/services.rs b/server/src/users/services.rs index c4bfee74..1b17d19a 100644 --- a/server/src/users/services.rs +++ b/server/src/users/services.rs @@ -4,7 +4,10 @@ use sqlx::{Acquire, PgPool}; use crate::users::{CreateUser, User}; #[tracing::instrument(level = "debug", ret, err)] -async fn create_user(pool: PgPool, create_user: CreateUser) -> color_eyre::Result> { +pub async fn create_user( + pool: PgPool, + create_user: CreateUser, +) -> color_eyre::Result> { let mut conn = pool.acquire().await?; if let Some(password_hash) = create_user.password_hash.expose() { diff --git a/server/tests/users.rs b/server/tests/users.rs index 32af4811..9bf64a0e 100644 --- a/server/tests/users.rs +++ b/server/tests/users.rs @@ -1,6 +1,29 @@ use sqlx::PgPool; +use server::users::selectors::get_user; +use server::users::services::create_user; +use server::users::CreateUser; + #[sqlx::test] async fn get_users_test(pool: PgPool) -> sqlx::Result<()> { + let user = get_user(pool.clone(), uuid::Uuid::nil()).await.unwrap(); + assert!(user.is_none()); + + let new_user = create_user( + pool.clone(), + CreateUser { + email: Default::default(), + username: Default::default(), + password_hash: Some("password".to_string()).into(), + access_token: Default::default(), + }, + ) + .await + .unwrap() + .unwrap(); + + let user = get_user(pool.clone(), new_user.user_id).await.unwrap(); + assert!(user.is_some()); + Ok(()) }