user_update_test.rs 3.2 KB

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