user_update_test.rs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. use crate::helper::*;
  2. use flowy_user::{errors::UserErrCode, event::UserEvent::*, prelude::*};
  3. use serial_test::*;
  4. #[test]
  5. #[serial]
  6. fn user_update_with_name() {
  7. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  8. let new_name = "hello_world".to_owned();
  9. let request = UpdateUserRequest {
  10. id: user_detail.id.clone(),
  11. name: Some(new_name.clone()),
  12. email: None,
  13. workspace: None,
  14. password: None,
  15. };
  16. let user_detail = UserTestBuilder::new()
  17. .event(UpdateUser)
  18. .request(request)
  19. .sync_send()
  20. .parse::<UserDetail>();
  21. assert_eq!(user_detail.name, new_name,);
  22. }
  23. #[test]
  24. #[serial]
  25. fn user_update_with_email() {
  26. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  27. let new_email = "[email protected]".to_owned();
  28. let request = UpdateUserRequest {
  29. id: user_detail.id.clone(),
  30. name: None,
  31. email: Some(new_email.clone()),
  32. workspace: None,
  33. password: None,
  34. };
  35. let user_detail = UserTestBuilder::new()
  36. .event(UpdateUser)
  37. .request(request)
  38. .sync_send()
  39. .parse::<UserDetail>();
  40. assert_eq!(user_detail.email, new_email,);
  41. }
  42. #[test]
  43. #[serial]
  44. fn user_update_with_password() {
  45. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  46. let new_password = "H123world!".to_owned();
  47. let request = UpdateUserRequest {
  48. id: user_detail.id.clone(),
  49. name: None,
  50. email: None,
  51. workspace: None,
  52. password: Some(new_password.clone()),
  53. };
  54. let _ = UserTestBuilder::new()
  55. .event(UpdateUser)
  56. .request(request)
  57. .sync_send()
  58. .assert_success();
  59. }
  60. #[test]
  61. #[serial]
  62. fn user_update_with_invalid_email() {
  63. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  64. for email in invalid_email_test_case() {
  65. let request = UpdateUserRequest {
  66. id: user_detail.id.clone(),
  67. name: None,
  68. email: Some(email),
  69. workspace: None,
  70. password: None,
  71. };
  72. assert_eq!(
  73. UserTestBuilder::new()
  74. .event(UpdateUser)
  75. .request(request)
  76. .sync_send()
  77. .error()
  78. .code,
  79. UserErrCode::EmailFormatInvalid
  80. );
  81. }
  82. }
  83. #[test]
  84. #[serial]
  85. fn user_update_with_invalid_password() {
  86. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  87. for password in invalid_password_test_case() {
  88. let request = UpdateUserRequest {
  89. id: user_detail.id.clone(),
  90. name: None,
  91. email: None,
  92. workspace: None,
  93. password: Some(password),
  94. };
  95. assert_eq!(
  96. UserTestBuilder::new()
  97. .event(UpdateUser)
  98. .request(request)
  99. .sync_send()
  100. .error()
  101. .code,
  102. UserErrCode::PasswordFormatInvalid
  103. );
  104. }
  105. }
  106. #[test]
  107. #[serial]
  108. fn user_update_with_invalid_name() {
  109. let user_detail = UserTestBuilder::new().reset().user_detail.unwrap();
  110. let request = UpdateUserRequest {
  111. id: user_detail.id.clone(),
  112. name: Some("".to_string()),
  113. email: None,
  114. workspace: None,
  115. password: None,
  116. };
  117. assert_eq!(
  118. UserTestBuilder::new()
  119. .event(UpdateUser)
  120. .request(request)
  121. .sync_send()
  122. .error()
  123. .code,
  124. UserErrCode::UserIdInvalid
  125. );
  126. }