auth_test.rs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. use crate::helper::*;
  2. use flowy_test::{event_builder::UserModuleEventBuilder, FlowySDKTest};
  3. use flowy_user::entities::{SignInPayloadPB, SignUpPayloadPB, UserProfilePB};
  4. use flowy_user::{errors::ErrorCode, event_map::UserEvent::*};
  5. #[tokio::test]
  6. async fn sign_up_with_invalid_email() {
  7. for email in invalid_email_test_case() {
  8. let sdk = FlowySDKTest::default();
  9. let request = SignUpPayloadPB {
  10. email: email.to_string(),
  11. name: valid_name(),
  12. password: login_password(),
  13. };
  14. assert_eq!(
  15. UserModuleEventBuilder::new(sdk)
  16. .event(SignUp)
  17. .payload(request)
  18. .async_send()
  19. .await
  20. .error()
  21. .code,
  22. ErrorCode::EmailFormatInvalid.value()
  23. );
  24. }
  25. }
  26. #[tokio::test]
  27. async fn sign_up_with_invalid_password() {
  28. for password in invalid_password_test_case() {
  29. let sdk = FlowySDKTest::default();
  30. let request = SignUpPayloadPB {
  31. email: random_email(),
  32. name: valid_name(),
  33. password,
  34. };
  35. UserModuleEventBuilder::new(sdk)
  36. .event(SignUp)
  37. .payload(request)
  38. .async_send()
  39. .await
  40. .assert_error();
  41. }
  42. }
  43. #[tokio::test]
  44. async fn sign_in_success() {
  45. let test = FlowySDKTest::default();
  46. let _ = UserModuleEventBuilder::new(test.clone()).event(SignOut).sync_send();
  47. let sign_up_context = test.sign_up().await;
  48. let request = SignInPayloadPB {
  49. email: sign_up_context.user_profile.email.clone(),
  50. password: sign_up_context.password.clone(),
  51. name: "".to_string(),
  52. };
  53. let response = UserModuleEventBuilder::new(test.clone())
  54. .event(SignIn)
  55. .payload(request)
  56. .async_send()
  57. .await
  58. .parse::<UserProfilePB>();
  59. dbg!(&response);
  60. }
  61. #[tokio::test]
  62. async fn sign_in_with_invalid_email() {
  63. for email in invalid_email_test_case() {
  64. let sdk = FlowySDKTest::default();
  65. let request = SignInPayloadPB {
  66. email: email.to_string(),
  67. password: login_password(),
  68. name: "".to_string(),
  69. };
  70. assert_eq!(
  71. UserModuleEventBuilder::new(sdk)
  72. .event(SignIn)
  73. .payload(request)
  74. .async_send()
  75. .await
  76. .error()
  77. .code,
  78. ErrorCode::EmailFormatInvalid.value()
  79. );
  80. }
  81. }
  82. #[tokio::test]
  83. async fn sign_in_with_invalid_password() {
  84. for password in invalid_password_test_case() {
  85. let sdk = FlowySDKTest::default();
  86. let request = SignInPayloadPB {
  87. email: random_email(),
  88. password,
  89. name: "".to_string(),
  90. };
  91. UserModuleEventBuilder::new(sdk)
  92. .event(SignIn)
  93. .payload(request)
  94. .async_send()
  95. .await
  96. .assert_error();
  97. }
  98. }