chore: cleaning code

This commit is contained in:
Maulana Sodiqin
2025-05-20 00:26:24 +07:00
parent e48507901e
commit d97095a38d
16 changed files with 139 additions and 251 deletions
+6 -5
View File
@@ -1,10 +1,11 @@
#[cfg(test)]
mod auth_repository_test {
use crate::{
create_mock_app_state, get_iso_date, make_thing, AuthOtpSchema, AuthRepository,
ResourceEnum, RolesItemDtoRaw, UsersItemDtoRaw, UsersRepository, UsersSchema,
AuthOtpSchema, AuthRepository, ResourceEnum, UsersRepository, UsersSchema,
create_mock_app_state, get_iso_date, make_thing,
};
use chrono::{Duration, Utc};
use imphnen_iam::{RolesDetailQueryDto, UsersDetailQueryDto};
use surrealdb::Uuid;
fn create_mock_user(email: &str) -> UsersSchema {
@@ -47,7 +48,7 @@ mod auth_repository_test {
let state = create_mock_app_state().await;
let auth_repo = AuthRepository::new(&state);
let email = "delete_me@example.com".to_string();
let mock_user = UsersItemDtoRaw {
let mock_user = UsersDetailQueryDto {
id: make_thing(&ResourceEnum::UsersCache.to_string(), &email),
fullname: "Test User".into(),
email: email.clone(),
@@ -56,7 +57,7 @@ mod auth_repository_test {
is_active: true,
gender: None,
birthdate: None,
role: RolesItemDtoRaw {
role: RolesDetailQueryDto {
id: make_thing("app_roles", &Uuid::new_v4().to_string()),
name: "Dummy Role".into(),
permissions: vec![],
@@ -69,7 +70,7 @@ mod auth_repository_test {
created_at: get_iso_date(),
updated_at: get_iso_date(),
};
let _: Option<UsersItemDtoRaw> = state
let _: Option<UsersDetailQueryDto> = state
.surrealdb_mem
.create((ResourceEnum::UsersCache.to_string(), email.clone()))
.content(mock_user)
+5 -3
View File
@@ -1,11 +1,11 @@
use crate::AppState;
use crate::{
create_mock_app_state, roles_router, v1::roles_repository::RolesRepository,
RolesRequestCreateDto, RolesRequestUpdateDto,
RolesRequestCreateDto, RolesRequestUpdateDto, create_mock_app_state, roles_router,
v1::roles_repository::RolesRepository,
};
use axum::http::StatusCode;
use axum::Extension;
use axum::Router;
use axum::http::StatusCode;
use axum_test::TestServer;
pub fn create_test_app(state: AppState) -> TestServer {
@@ -74,6 +74,7 @@ async fn test_put_update_role_should_return_200() {
let payload = RolesRequestUpdateDto {
name: Some("Updated Role".into()),
permissions: Some(vec![]),
overwrite: None,
};
let res = server
.put(&format!("/v1/roles/update/{}", id))
@@ -131,6 +132,7 @@ async fn test_put_update_nonexistent_role_should_return_404() {
let payload = RolesRequestUpdateDto {
name: Some("Does Not Exist".into()),
permissions: Some(vec![]),
overwrite: None,
};
let res = server
.put("/v1/roles/update/nonexistent-id")
@@ -100,6 +100,7 @@ async fn test_query_update_role_should_update_name_and_permissions() {
let update_payload = RolesRequestUpdateDto {
name: Some("Updated Role Name".into()),
permissions: Some(vec![new_perm_id.clone()]),
overwrite: None,
};
let update_result = repo
.query_update_role(existing_role_id.clone(), update_payload)
@@ -158,6 +159,7 @@ async fn test_query_update_role_should_fallback_to_existing_permissions_if_none_
let update_payload = RolesRequestUpdateDto {
name: Some("Updated Role Name".into()),
permissions: None,
overwrite: None,
};
let update_res = repo
.query_update_role(existing_id.clone(), update_payload)
+2 -85
View File
@@ -1,8 +1,5 @@
use crate::{create_mock_app_state, create_test_user, RolesRepository};
use crate::{
MetaRequestDto, UsersActiveInactiveSchema, UsersRepository,
UsersSetNewPasswordSchema,
};
use crate::{MetaRequestDto, UsersRepository};
use crate::{RolesRepository, create_mock_app_state, create_test_user};
async fn get_role_id(state: &crate::AppState) -> String {
RolesRepository::new(state)
@@ -31,35 +28,6 @@ async fn test_create_and_get_user() {
assert_eq!(fetched.unwrap().email, "testuser@example.com");
}
#[tokio::test]
async fn test_update_password_user() {
let app_state = create_mock_app_state().await;
let repo = UsersRepository::new(&app_state);
let role_repo = RolesRepository::new(&app_state);
let role_id = role_repo
.query_role_by_name("Student".into())
.await
.expect("Role not found")
.id;
let email = "changepass@example.com";
let user = create_test_user(email, "Change Password", true, &role_id);
repo.query_create_user(user).await.unwrap();
let result = repo
.query_update_password_user(
email.to_string(),
UsersSetNewPasswordSchema {
password: "newpass".into(),
},
)
.await;
assert!(
result.is_ok(),
"Update password failed with error: {:?}",
result.err()
);
dbg!(result.unwrap());
}
#[tokio::test]
async fn test_query_user_list_with_pagination_and_filter() {
let app_state = create_mock_app_state().await;
@@ -116,57 +84,6 @@ async fn test_query_user_list_basic() {
assert_eq!(result.meta.as_ref().unwrap().per_page.unwrap(), 5);
}
#[tokio::test]
async fn test_query_active_inactive_user() {
let app_state = create_mock_app_state().await;
let repo = UsersRepository::new(&app_state);
let email = "inactive@example.com";
let user = create_test_user(
email,
"Inactive User",
false,
&get_role_id(&app_state).await,
);
repo.query_create_user(user).await.unwrap();
let result = repo
.query_active_inactive_user(
email.into(),
UsersActiveInactiveSchema { is_active: true },
)
.await;
assert!(result.is_ok());
let updated = repo
.query_user_by_email("inactive@example.com".into())
.await
.unwrap();
assert_eq!(updated.is_active, true);
}
#[tokio::test]
async fn test_query_user_by_invalid_email_should_fail() {
let app_state = create_mock_app_state().await;
let repo = UsersRepository::new(&app_state);
let result = repo
.query_user_by_email("nonexistent@example.com".into())
.await;
assert!(result.is_err());
}
#[tokio::test]
async fn test_query_update_password_for_nonexistent_user_should_fail() {
let app_state = create_mock_app_state().await;
let repo = UsersRepository::new(&app_state);
let result = repo
.query_update_password_user(
"ghost@example.com".into(),
UsersSetNewPasswordSchema {
password: "secret".into(),
},
)
.await;
assert!(result.is_err());
}
#[tokio::test]
async fn test_query_delete_user() {
let app_state = create_mock_app_state().await;
-1
View File
@@ -1,6 +1,5 @@
pub use imphnen_entities::*;
pub use imphnen_iam::*;
pub use imphnen_utils::*;
#[cfg(test)]
pub mod iam;