user_profile_test.rs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. use crate::helper::*;
  2. use flowy_test::{event_builder::UserModuleEventBuilder, FlowySDKTest};
  3. use flowy_user::{errors::ErrorCode, event_map::UserEvent::*};
  4. use flowy_user_data_model::entities::{UpdateUserPayload, UserProfile};
  5. use lib_infra::uuid;
  6. // use serial_test::*;
  7. #[tokio::test]
  8. async fn user_profile_get_failed() {
  9. let sdk = FlowySDKTest::default();
  10. let result = UserModuleEventBuilder::new(sdk)
  11. .event(GetUserProfile)
  12. .assert_error()
  13. .async_send()
  14. .await;
  15. assert!(result.user_profile().is_none())
  16. }
  17. #[tokio::test]
  18. async fn user_profile_get() {
  19. let test = FlowySDKTest::default();
  20. let user_profile = test.init_user().await;
  21. let user = UserModuleEventBuilder::new(test.clone())
  22. .event(GetUserProfile)
  23. .sync_send()
  24. .parse::<UserProfile>();
  25. assert_eq!(user_profile, user);
  26. }
  27. #[tokio::test]
  28. async fn user_update_with_name() {
  29. let sdk = FlowySDKTest::default();
  30. let user = sdk.init_user().await;
  31. let new_name = "hello_world".to_owned();
  32. let request = UpdateUserPayload::new(&user.id).name(&new_name);
  33. let _ = UserModuleEventBuilder::new(sdk.clone())
  34. .event(UpdateUser)
  35. .payload(request)
  36. .sync_send();
  37. let user_profile = UserModuleEventBuilder::new(sdk.clone())
  38. .event(GetUserProfile)
  39. .assert_error()
  40. .sync_send()
  41. .parse::<UserProfile>();
  42. assert_eq!(user_profile.name, new_name,);
  43. }
  44. #[tokio::test]
  45. async fn user_update_with_email() {
  46. let sdk = FlowySDKTest::default();
  47. let user = sdk.init_user().await;
  48. let new_email = format!("{}@gmail.com", uuid());
  49. let request = UpdateUserPayload::new(&user.id).email(&new_email);
  50. let _ = UserModuleEventBuilder::new(sdk.clone())
  51. .event(UpdateUser)
  52. .payload(request)
  53. .sync_send();
  54. let user_profile = UserModuleEventBuilder::new(sdk.clone())
  55. .event(GetUserProfile)
  56. .assert_error()
  57. .sync_send()
  58. .parse::<UserProfile>();
  59. assert_eq!(user_profile.email, new_email,);
  60. }
  61. #[tokio::test]
  62. async fn user_update_with_password() {
  63. let sdk = FlowySDKTest::default();
  64. let user = sdk.init_user().await;
  65. let new_password = "H123world!".to_owned();
  66. let request = UpdateUserPayload::new(&user.id).password(&new_password);
  67. let _ = UserModuleEventBuilder::new(sdk.clone())
  68. .event(UpdateUser)
  69. .payload(request)
  70. .sync_send()
  71. .assert_success();
  72. }
  73. #[tokio::test]
  74. async fn user_update_with_invalid_email() {
  75. let test = FlowySDKTest::default();
  76. let user = test.init_user().await;
  77. for email in invalid_email_test_case() {
  78. let request = UpdateUserPayload::new(&user.id).email(&email);
  79. assert_eq!(
  80. UserModuleEventBuilder::new(test.clone())
  81. .event(UpdateUser)
  82. .payload(request)
  83. .sync_send()
  84. .error()
  85. .code,
  86. ErrorCode::EmailFormatInvalid.value()
  87. );
  88. }
  89. }
  90. #[tokio::test]
  91. async fn user_update_with_invalid_password() {
  92. let test = FlowySDKTest::default();
  93. let user = test.init_user().await;
  94. for password in invalid_password_test_case() {
  95. let request = UpdateUserPayload::new(&user.id).password(&password);
  96. UserModuleEventBuilder::new(test.clone())
  97. .event(UpdateUser)
  98. .payload(request)
  99. .sync_send()
  100. .assert_error();
  101. }
  102. }
  103. #[tokio::test]
  104. async fn user_update_with_invalid_name() {
  105. let test = FlowySDKTest::default();
  106. let user = test.init_user().await;
  107. let request = UpdateUserPayload::new(&user.id).name("");
  108. UserModuleEventBuilder::new(test.clone())
  109. .event(UpdateUser)
  110. .payload(request)
  111. .sync_send()
  112. .assert_error();
  113. }