user_profile_test.rs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. use crate::helper::*;
  2. use flowy_infra::uuid;
  3. use flowy_test::{builder::UserTest, init_test_sdk, FlowyEnv};
  4. use flowy_user::{errors::ErrorCode, event::UserEvent::*, prelude::*};
  5. use serial_test::*;
  6. #[test]
  7. #[serial]
  8. fn user_profile_get_failed() {
  9. let sdk = init_test_sdk();
  10. let result = UserTest::new(sdk).event(GetUserProfile).assert_error().sync_send();
  11. assert!(result.user_detail().is_none())
  12. }
  13. #[test]
  14. #[serial]
  15. fn user_profile_get() {
  16. let env = FlowyEnv::setup();
  17. let user = UserTest::new(env.sdk.clone())
  18. .event(GetUserProfile)
  19. .sync_send()
  20. .parse::<UserDetail>();
  21. assert_eq!(env.user, user);
  22. }
  23. #[test]
  24. #[serial]
  25. fn user_update_with_name() {
  26. let env = FlowyEnv::setup();
  27. let new_name = "hello_world".to_owned();
  28. let request = UpdateUserRequest::new(&env.user.id).name(&new_name);
  29. let _ = UserTest::new(env.sdk()).event(UpdateUser).request(request).sync_send();
  30. let user_detail = UserTest::new(env.sdk())
  31. .event(GetUserProfile)
  32. .assert_error()
  33. .sync_send()
  34. .parse::<UserDetail>();
  35. assert_eq!(user_detail.name, new_name,);
  36. }
  37. #[test]
  38. #[serial]
  39. fn user_update_with_email() {
  40. let env = FlowyEnv::setup();
  41. let new_email = format!("{}@gmai.com", uuid());
  42. let request = UpdateUserRequest::new(&env.user.id).email(&new_email);
  43. let _ = UserTest::new(env.sdk()).event(UpdateUser).request(request).sync_send();
  44. let user_detail = UserTest::new(env.sdk())
  45. .event(GetUserProfile)
  46. .assert_error()
  47. .sync_send()
  48. .parse::<UserDetail>();
  49. assert_eq!(user_detail.email, new_email,);
  50. }
  51. #[test]
  52. #[serial]
  53. fn user_update_with_password() {
  54. let env = FlowyEnv::setup();
  55. let new_password = "H123world!".to_owned();
  56. let request = UpdateUserRequest::new(&env.user.id).password(&new_password);
  57. let _ = UserTest::new(env.sdk())
  58. .event(UpdateUser)
  59. .request(request)
  60. .sync_send()
  61. .assert_success();
  62. }
  63. #[test]
  64. #[serial]
  65. fn user_update_with_invalid_email() {
  66. let env = FlowyEnv::setup();
  67. for email in invalid_email_test_case() {
  68. let request = UpdateUserRequest::new(&env.user.id).email(&email);
  69. assert_eq!(
  70. UserTest::new(env.sdk()).event(UpdateUser).request(request).sync_send().error().code,
  71. ErrorCode::EmailFormatInvalid
  72. );
  73. }
  74. }
  75. #[test]
  76. #[serial]
  77. fn user_update_with_invalid_password() {
  78. let env = FlowyEnv::setup();
  79. for password in invalid_password_test_case() {
  80. let request = UpdateUserRequest::new(&env.user.id).password(&password);
  81. UserTest::new(env.sdk())
  82. .event(UpdateUser)
  83. .request(request)
  84. .sync_send()
  85. .assert_error();
  86. }
  87. }
  88. #[test]
  89. #[serial]
  90. fn user_update_with_invalid_name() {
  91. let env = FlowyEnv::setup();
  92. let request = UpdateUserRequest::new(&env.user.id).name("");
  93. UserTest::new(env.sdk())
  94. .event(UpdateUser)
  95. .request(request)
  96. .sync_send()
  97. .assert_error();
  98. }