auth_test.rs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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_as_guest().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. uid: Some(sign_up_context.user_profile.id),
  62. };
  63. let response = EventBuilder::new(test.clone())
  64. .event(SignIn)
  65. .payload(request)
  66. .async_send()
  67. .await
  68. .parse::<UserProfilePB>();
  69. dbg!(&response);
  70. }
  71. #[tokio::test]
  72. async fn sign_in_with_invalid_email() {
  73. for email in invalid_email_test_case() {
  74. let sdk = FlowyCoreTest::new();
  75. let request = SignInPayloadPB {
  76. email: email.to_string(),
  77. password: login_password(),
  78. name: "".to_string(),
  79. auth_type: AuthTypePB::Local,
  80. uid: None,
  81. };
  82. assert_eq!(
  83. EventBuilder::new(sdk)
  84. .event(SignIn)
  85. .payload(request)
  86. .async_send()
  87. .await
  88. .error()
  89. .unwrap()
  90. .code,
  91. ErrorCode::EmailFormatInvalid.value()
  92. );
  93. }
  94. }
  95. #[tokio::test]
  96. async fn sign_in_with_invalid_password() {
  97. for password in invalid_password_test_case() {
  98. let sdk = FlowyCoreTest::new();
  99. let request = SignInPayloadPB {
  100. email: random_email(),
  101. password,
  102. name: "".to_string(),
  103. auth_type: AuthTypePB::Local,
  104. uid: None,
  105. };
  106. assert!(EventBuilder::new(sdk)
  107. .event(SignIn)
  108. .payload(request)
  109. .async_send()
  110. .await
  111. .error()
  112. .is_some())
  113. }
  114. }