From 104fc1525c25ce4f6e299ea87005d25abcdd84bc Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Fri, 10 Jan 2025 15:50:17 +0530 Subject: [PATCH] feat: identity tests --- src/identity/adapters/input/web/employee.rs | 26 +++++++ src/identity/adapters/input/web/owner.rs | 75 +++++++++++++++++++-- src/identity/adapters/input/web/routes.rs | 32 ++++----- 3 files changed, 112 insertions(+), 21 deletions(-) diff --git a/src/identity/adapters/input/web/employee.rs b/src/identity/adapters/input/web/employee.rs index edbf500..3b78dcb 100644 --- a/src/identity/adapters/input/web/employee.rs +++ b/src/identity/adapters/input/web/employee.rs @@ -158,3 +158,29 @@ async fn exit_organization_form_submission_handler( Ok(HttpResponse::Ok().json(store)) } + +#[cfg(test)] +mod tests { + use super::*; + + use crate::identity::adapters::input::web::RoutesRepository; + use crate::tests::actix_web_test_utils::page_test_runner; + + #[actix_rt::test] + async fn identity_web_employee_login_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.employee_login).await; + } + + #[actix_rt::test] + async fn identity_web_employee_register_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.employee_register).await; + } + + #[actix_rt::test] + async fn identity_web_employee_exit_organization_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.employee_exit_organization).await; + } +} diff --git a/src/identity/adapters/input/web/owner.rs b/src/identity/adapters/input/web/owner.rs index 08bd05a..23f362f 100644 --- a/src/identity/adapters/input/web/owner.rs +++ b/src/identity/adapters/input/web/owner.rs @@ -121,11 +121,13 @@ async fn register_form_submission_handler( #[get("/owner/user/email/update")] #[tracing::instrument(name = "Update email UI handler", skip())] async fn update_email_ui_handler() -> WebJsonRepsonse { - const UPDATE_EMAIL: &str = include_str!("./owner_update_email.html"); + use web_ui::identity::owner_update_email::*; + + let page = OwnerUpdateEmailPage::page(); Ok(HttpResponse::Ok() .insert_header(ContentType::html()) - .body(UPDATE_EMAIL)) + .body(page)) } #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)] @@ -154,7 +156,7 @@ async fn update_email_form_submission_handler( // change password handlers #[allow(clippy::too_many_arguments)] -#[get("/owner/user/password/update")] +#[get("/owner/user/password/change")] #[tracing::instrument(name = "Change password UI handler", skip())] async fn change_password_ui_handler() -> WebJsonRepsonse { const CHANGE_PASSWORD: &str = include_str!("./owner_change_password.html"); @@ -256,12 +258,12 @@ async fn verify_email_form_submission_handler( #[get("/owner/user/email/verify/resend")] #[tracing::instrument( name = "Resend verification email handler", - skip(id, req, identity_cqrs_exec) + skip(req, identity_cqrs_exec) )] async fn resend_verification_email( identity_cqrs_exec: types::WebIdentityCqrsExec, req: HttpRequest, - id: Identity, + // id: Identity, ) -> WebJsonRepsonse { let store = ""; @@ -339,3 +341,66 @@ async fn update_store_form_submission_handler( Ok(HttpResponse::Ok().json(store)) } + +#[cfg(test)] +mod tests { + use super::*; + + use crate::identity::adapters::input::web::RoutesRepository; + use crate::tests::actix_web_test_utils::page_test_runner; + + #[actix_rt::test] + async fn identity_web_owner_login_ui_works() { + let routes = RoutesRepository::default(); + + page_test_runner(&routes.owner_login).await; + } + + #[actix_rt::test] + async fn identity_web_owner_register_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_register).await; + } + + #[actix_rt::test] + async fn identity_web_owner_delete_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_delete).await; + } + + #[actix_rt::test] + async fn identity_web_owner_verify_email_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_verify_email).await; + } + + #[actix_rt::test] + async fn identity_web_owner_resend_verification_email_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_resend_verification_email).await; + } + + #[actix_rt::test] + async fn identity_web_owner_update_email_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_update_email).await; + } + + #[actix_rt::test] + async fn identity_web_owner_change_password_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_change_password).await; + } + + #[actix_rt::test] + async fn identity_web_owner_add_store_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_add_store).await; + } + + #[actix_rt::test] + async fn identity_web_owner_update_store_ui_works() { + let routes = RoutesRepository::default(); + page_test_runner(&routes.owner_update_store).await; + } +} diff --git a/src/identity/adapters/input/web/routes.rs b/src/identity/adapters/input/web/routes.rs index 5c4aa88..78daf50 100644 --- a/src/identity/adapters/input/web/routes.rs +++ b/src/identity/adapters/input/web/routes.rs @@ -7,24 +7,24 @@ use uuid::Uuid; #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct RoutesRepository { - owner_login: String, - owner_register: String, - owner_delete: String, - owner_verify_email: String, - owner_resend_verification_email: String, + pub owner_login: String, + pub owner_register: String, + pub owner_delete: String, + pub owner_verify_email: String, + pub owner_resend_verification_email: String, // owner_set_admin: String, - owner_update_email: String, - owner_change_password: String, + pub owner_update_email: String, + pub owner_change_password: String, - owner_add_store: String, - owner_update_store: String, + pub owner_add_store: String, + pub owner_update_store: String, - employee_exit_organization: String, - employee_login: String, - employee_register: String, - employee_resend_login_otp: String, - employee_resend_verification_otp: String, - employee_verify_phone_number: String, + pub employee_exit_organization: String, + pub employee_login: String, + pub employee_register: String, + pub employee_resend_login_otp: String, + pub employee_resend_verification_otp: String, + pub employee_verify_phone_number: String, } impl Default for RoutesRepository { @@ -36,7 +36,7 @@ impl Default for RoutesRepository { owner_verify_email: "/owner/user/email/verify".into(), owner_resend_verification_email: "/owner/user/email/verify/resend".into(), owner_update_email: "/owner/user/email/update".into(), - owner_change_password: "/owner/password/change".into(), + owner_change_password: "/owner/user/password/change".into(), //owner_set_admin: "/owner/user/promote/admin".into(), owner_add_store: "/owner/store".into(), owner_update_store: "/owner/store/update".into(),