user_profile_test.rs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. use crate::helper::*;
  2. use flowy_infra::uuid;
  3. use flowy_test::{builder::UserTestBuilder, init_test_sdk};
  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 = UserTestBuilder::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 sdk = init_test_sdk();
  17. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  18. let user_detail2 = UserTestBuilder::new(sdk).event(GetUserProfile).sync_send().parse::<UserDetail>();
  19. assert_eq!(user_detail, user_detail2);
  20. }
  21. #[test]
  22. #[serial]
  23. fn user_update_with_name() {
  24. let sdk = init_test_sdk();
  25. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  26. let new_name = "hello_world".to_owned();
  27. let request = UpdateUserRequest::new(&user_detail.id).name(&new_name);
  28. let _ = UserTestBuilder::new(sdk.clone()).event(UpdateUser).request(request).sync_send();
  29. let user_detail = UserTestBuilder::new(sdk)
  30. .event(GetUserProfile)
  31. .assert_error()
  32. .sync_send()
  33. .parse::<UserDetail>();
  34. assert_eq!(user_detail.name, new_name,);
  35. }
  36. #[test]
  37. #[serial]
  38. fn user_update_with_email() {
  39. let sdk = init_test_sdk();
  40. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  41. let new_email = format!("{}@gmai.com", uuid());
  42. let request = UpdateUserRequest::new(&user_detail.id).email(&new_email);
  43. let _ = UserTestBuilder::new(sdk.clone()).event(UpdateUser).request(request).sync_send();
  44. let user_detail = UserTestBuilder::new(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 sdk = init_test_sdk();
  55. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  56. let new_password = "H123world!".to_owned();
  57. let request = UpdateUserRequest::new(&user_detail.id).password(&new_password);
  58. let _ = UserTestBuilder::new(sdk)
  59. .event(UpdateUser)
  60. .request(request)
  61. .sync_send()
  62. .assert_success();
  63. }
  64. #[test]
  65. #[serial]
  66. fn user_update_with_invalid_email() {
  67. let sdk = init_test_sdk();
  68. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  69. for email in invalid_email_test_case() {
  70. let request = UpdateUserRequest::new(&user_detail.id).email(&email);
  71. assert_eq!(
  72. UserTestBuilder::new(sdk.clone())
  73. .event(UpdateUser)
  74. .request(request)
  75. .sync_send()
  76. .error()
  77. .code,
  78. ErrorCode::EmailFormatInvalid
  79. );
  80. }
  81. }
  82. #[test]
  83. #[serial]
  84. fn user_update_with_invalid_password() {
  85. let sdk = init_test_sdk();
  86. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  87. for password in invalid_password_test_case() {
  88. let request = UpdateUserRequest::new(&user_detail.id).password(&password);
  89. UserTestBuilder::new(sdk.clone())
  90. .event(UpdateUser)
  91. .request(request)
  92. .sync_send()
  93. .assert_error();
  94. }
  95. }
  96. #[test]
  97. #[serial]
  98. fn user_update_with_invalid_name() {
  99. let sdk = init_test_sdk();
  100. let user_detail = UserTestBuilder::new(sdk.clone()).sign_up().user_detail;
  101. let request = UpdateUserRequest::new(&user_detail.id).name("");
  102. UserTestBuilder::new(sdk)
  103. .event(UpdateUser)
  104. .request(request)
  105. .sync_send()
  106. .assert_error();
  107. }