user_profile_test.rs 3.1 KB

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