Get User profile endpoint (#18)
Rust Build / Rustfmt (push) Successful in 38s
Rust Build / Test Suite (push) Failing after 1m43s
Rust Build / Check (push) Successful in 1m52s
Rust Build / Clippy (push) Successful in 1m10s
Rust Build / build (push) Successful in 2m4s
Rust Build / Rustfmt (pull_request) Successful in 1m9s
Rust Build / Clippy (pull_request) Successful in 1m17s
Rust Build / Check (pull_request) Successful in 1m36s
Rust Build / Rustfmt (push) Successful in 38s
Rust Build / Test Suite (push) Failing after 1m43s
Rust Build / Check (push) Successful in 1m52s
Rust Build / Clippy (push) Successful in 1m10s
Rust Build / build (push) Successful in 2m4s
Rust Build / Rustfmt (pull_request) Successful in 1m9s
Rust Build / Clippy (pull_request) Successful in 1m17s
Rust Build / Check (pull_request) Successful in 1m36s
Reviewed-on: phoenix/textsender_auth#18
This commit was merged in pull request #18.
This commit is contained in:
+104
@@ -225,6 +225,29 @@ pub mod requests {
|
||||
Err(err) => Err(err),
|
||||
}
|
||||
}
|
||||
|
||||
/// Function to call get user profile endpoint
|
||||
pub async fn get_user_profile(
|
||||
app: &axum::Router,
|
||||
user_id: &uuid::Uuid,
|
||||
) -> Result<axum::response::Response, axum::http::Error> {
|
||||
let url = super::util::format_url_with_value(
|
||||
textsender_auth::callers::endpoints::GET_USER_PROFILE,
|
||||
user_id,
|
||||
);
|
||||
match axum::http::Request::builder()
|
||||
.method(axum::http::Method::GET)
|
||||
.uri(url)
|
||||
.header(axum::http::header::CONTENT_TYPE, "application/json")
|
||||
.body(axum::body::Body::empty())
|
||||
{
|
||||
Ok(req) => match app.clone().oneshot(req).await {
|
||||
Ok(resp) => Ok(resp),
|
||||
Err(err) => Err(axum::http::Error::from(err)),
|
||||
},
|
||||
Err(err) => Err(err),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Test user firstname
|
||||
@@ -272,6 +295,11 @@ mod util {
|
||||
Err(err) => Err(std::io::Error::other(err.to_string())),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn format_url_with_value(endpoint: &str, value: &uuid::Uuid) -> String {
|
||||
let last = endpoint.len() - 5;
|
||||
format!("{}/{value}", &endpoint[0..last])
|
||||
}
|
||||
}
|
||||
|
||||
mod flow {
|
||||
@@ -989,3 +1017,79 @@ async fn test_update_name_of_password() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_get_user_profile() {
|
||||
let tm_pool = db_mgr::get_pool().await.unwrap();
|
||||
let db_name = db_mgr::generate_db_name().await;
|
||||
|
||||
match db_mgr::create_database(&tm_pool, &db_name).await {
|
||||
Ok(_) => {
|
||||
println!("Success");
|
||||
}
|
||||
Err(e) => {
|
||||
assert!(false, "Error: {:?}", e.to_string());
|
||||
}
|
||||
}
|
||||
|
||||
let pool = db_mgr::connect_to_db(&db_name).await.unwrap();
|
||||
|
||||
db::init::migrations(&pool).await;
|
||||
|
||||
let app = init::routes().await.layer(axum::Extension(pool));
|
||||
|
||||
let user_id = match flow::register_user(&app).await {
|
||||
Ok(user) => match flow::login_user(&app, &user.username, TEST_PASSWORD).await {
|
||||
Ok(login_result) => {
|
||||
assert_eq!(
|
||||
false,
|
||||
login_result.access_token.is_empty(),
|
||||
"Access token is empty when it should not be"
|
||||
);
|
||||
login_result.user_id
|
||||
}
|
||||
Err(err) => {
|
||||
assert!(false, "Error: {err:?}");
|
||||
uuid::Uuid::nil()
|
||||
}
|
||||
},
|
||||
Err(err) => {
|
||||
assert!(false, "Error: {err:?}");
|
||||
uuid::Uuid::nil()
|
||||
}
|
||||
};
|
||||
|
||||
assert_eq!(false, user_id.is_nil(), "User Id should not be empty");
|
||||
|
||||
match requests::get_user_profile(&app, &user_id).await {
|
||||
Ok(response) => {
|
||||
match util::convert_response::<
|
||||
textsender_auth::callers::login::response::GetUserProfileResponse,
|
||||
>(response)
|
||||
.await
|
||||
{
|
||||
Ok(response) => {
|
||||
assert_eq!(false, response.data.is_empty(), "No User Profile found");
|
||||
let user_profile = &response.data[0];
|
||||
assert_eq!(
|
||||
TEST_USERNAME, user_profile.username,
|
||||
"Username does not match"
|
||||
);
|
||||
}
|
||||
Err(err) => {
|
||||
assert!(false, "Error: {err:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
assert!(false, "Error: {err:?}");
|
||||
}
|
||||
}
|
||||
|
||||
match db_mgr::drop_database(&tm_pool, &db_name).await {
|
||||
Ok(()) => {}
|
||||
Err(err) => {
|
||||
assert!(false, "Error: {err:?}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user