auth_test.rs 2.8 KB

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