user_profile_test.rs 3.0 KB

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