Files
imphnen-backend-service/tests/src/iam/users/users_controller_test.rs
T

52 lines
1.5 KiB
Rust
Raw Normal View History

#[cfg(test)]
mod tests {
use crate::{generate_unique_email, get_role_id, UsersRepository};
use axum::{http::StatusCode, response::Response};
use imphnen_iam::{
UsersCreateRequestDto, UsersUpdateRequestDto, UsersSchema, ResourceEnum,
UsersActiveInactiveRequestDto, UsersSetNewPasswordRequestDto
};
use imphnen_utils::{make_thing_from_enum, ResourceEnum as UtilsResourceEnum};
use uuid::Uuid;
#[tokio::test]
async fn test_create_user_controller() {
let app_state = crate::get_app_state().await;
let repo = UsersRepository::new(&app_state);
let role_id = get_role_id("mentee", &app_state).await;
// Test data
let email = generate_unique_email("test_user_controller");
let user_request = UsersCreateRequestDto {
email: email.clone(),
password: "password123".to_string(),
fullname: "Test User Controller".to_string(),
phone_number: Some("+1234567890".to_string()),
is_active: true,
avatar: None,
role_id: role_id,
};
// Create user through controller
let response = imphnen_iam::UsersController::create_user(
&app_state,
user_request.clone(),
)
.await;
// Verify response
assert_eq!(response.status(), StatusCode::CREATED);
// Verify user was created in database
let created_user = repo
.query_user_by_email(email.clone())
.await
.unwrap();
assert_eq!(created_user.email, email);
assert_eq!(created_user.fullname, "Test User Controller");
assert_eq!(created_user.is_active, true);
// Clean up
let _ = repo.query_delete_user(created_user.id.id.to_raw()).await;
}
}