auth_test.rs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. use flowy_test::prelude::*;
  2. use flowy_user::{event::UserEvent::*, prelude::*};
  3. #[test]
  4. fn sign_up_success() {
  5. let request = SignUpRequest {
  6. email: valid_email(),
  7. name: valid_name(),
  8. password: valid_password(),
  9. };
  10. let _response = EventTester::new(SignUp).request(request).sync_send();
  11. // .parse::<SignUpResponse>();
  12. // dbg!(&response);
  13. }
  14. #[test]
  15. fn sign_in_success() {
  16. let request = SignInRequest {
  17. email: valid_email(),
  18. password: valid_password(),
  19. };
  20. let response = EventTester::new(SignIn)
  21. .request(request)
  22. .sync_send()
  23. .parse::<SignInResponse>();
  24. dbg!(&response);
  25. }
  26. #[test]
  27. fn sign_up_with_invalid_email() {
  28. for email in invalid_email_test_case() {
  29. let request = SignUpRequest {
  30. email: email.to_string(),
  31. name: valid_name(),
  32. password: valid_password(),
  33. };
  34. let _ = EventTester::new(SignUp)
  35. .request(request)
  36. .assert_error()
  37. .sync_send();
  38. }
  39. }
  40. #[test]
  41. fn sign_up_with_invalid_password() {
  42. for password in invalid_password_test_case() {
  43. let request = SignUpRequest {
  44. email: valid_email(),
  45. name: valid_name(),
  46. password,
  47. };
  48. let _ = EventTester::new(SignUp)
  49. .request(request)
  50. .assert_error()
  51. .sync_send();
  52. }
  53. }
  54. #[test]
  55. fn sign_in_with_invalid_email() {
  56. for email in invalid_email_test_case() {
  57. let request = SignInRequest {
  58. email: email.to_string(),
  59. password: valid_password(),
  60. };
  61. let _ = EventTester::new(SignIn)
  62. .request(request)
  63. .assert_error()
  64. .sync_send();
  65. }
  66. }
  67. #[test]
  68. fn sign_in_with_invalid_password() {
  69. for password in invalid_password_test_case() {
  70. let request = SignInRequest {
  71. email: valid_email(),
  72. password,
  73. };
  74. let _ = EventTester::new(SignIn)
  75. .request(request)
  76. .assert_error()
  77. .sync_send();
  78. }
  79. }
  80. fn invalid_email_test_case() -> Vec<String> {
  81. // https://gist.github.com/cjaoude/fd9910626629b53c4d25
  82. vec![
  83. "",
  84. "annie@",
  85. "annie@gmail@",
  86. "#@%^%#$@#$@#.com",
  87. "@example.com",
  88. "Joe Smith <[email protected]>",
  89. "email.example.com",
  90. "email@[email protected]",
  91. "[email protected]",
  92. "[email protected]",
  93. "あいうえお@example.com",
  94. /* The following email is valid according to the validate_email function return
  95. * "[email protected]",
  96. * "[email protected]",
  97. * "[email protected]",
  98. * "email@example",
  99. * "[email protected]",
  100. * "[email protected]",
  101. * "[email protected]", */
  102. ]
  103. .iter()
  104. .map(|s| s.to_string())
  105. .collect::<Vec<_>>()
  106. }
  107. fn invalid_password_test_case() -> Vec<String> {
  108. vec!["", "123456", "1234".repeat(100).as_str()]
  109. .iter()
  110. .map(|s| s.to_string())
  111. .collect::<Vec<_>>()
  112. }
  113. fn valid_email() -> String { "[email protected]".to_string() }
  114. fn valid_password() -> String { "HelloWorld!123".to_string() }
  115. fn valid_name() -> String { "AppFlowy".to_string() }