auth.rs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. use crate::helper::{spawn_app, TestApp};
  2. use flowy_user::entities::{SignInParams, SignUpParams, SignUpResponse, UpdateUserParams};
  3. #[actix_rt::test]
  4. async fn user_register() {
  5. let app = spawn_app().await;
  6. let response = register_user(&app, "[email protected]", "HelloWorld123!").await;
  7. log::info!("{:?}", response);
  8. }
  9. #[actix_rt::test]
  10. #[should_panic]
  11. async fn user_sign_in_with_invalid_password() {
  12. let app = spawn_app().await;
  13. let email = "[email protected]";
  14. let password = "123";
  15. let _ = register_user(&app, email, password).await;
  16. }
  17. #[actix_rt::test]
  18. #[should_panic]
  19. async fn user_sign_in_with_invalid_email() {
  20. let app = spawn_app().await;
  21. let email = "annie@gmail@";
  22. let password = "HelloWorld123!";
  23. let _ = register_user(&app, email, password).await;
  24. }
  25. #[actix_rt::test]
  26. async fn user_sign_in() {
  27. let app = spawn_app().await;
  28. let email = "[email protected]";
  29. let password = "HelloWorld123!";
  30. let _ = register_user(&app, email, password).await;
  31. let params = SignInParams {
  32. email: email.to_string(),
  33. password: password.to_string(),
  34. };
  35. let _ = app.sign_in(params).await.unwrap();
  36. }
  37. #[actix_rt::test]
  38. #[should_panic]
  39. async fn user_sign_out() {
  40. let app = spawn_app().await;
  41. let email = "[email protected]";
  42. let password = "HelloWorld123!";
  43. let _ = register_user(&app, email, password).await;
  44. let params = SignInParams {
  45. email: email.to_string(),
  46. password: password.to_string(),
  47. };
  48. let sign_in_resp = app.sign_in(params).await.unwrap();
  49. let token = sign_in_resp.token.clone();
  50. app.sign_out(&token).await;
  51. // user_detail will be empty because use was sign out.
  52. app.get_user_detail(&token).await;
  53. }
  54. #[actix_rt::test]
  55. async fn user_get_detail() {
  56. let app = spawn_app().await;
  57. let sign_up_resp = sign_up_user(&app).await;
  58. log::info!("{:?}", app.get_user_detail(&sign_up_resp.token).await);
  59. }
  60. #[actix_rt::test]
  61. async fn user_update_password() {
  62. let app = spawn_app().await;
  63. let email = "[email protected]";
  64. let password = "HelloWorld123!";
  65. let sign_up_resp = register_user(&app, email, password).await;
  66. let params = UpdateUserParams::new(&sign_up_resp.user_id).password("Hello123!");
  67. app.update_user_detail(&sign_up_resp.token, params)
  68. .await
  69. .unwrap();
  70. let sign_in_params = SignInParams {
  71. email: email.to_string(),
  72. password: password.to_string(),
  73. };
  74. match app.sign_in(sign_in_params).await {
  75. Ok(_) => {},
  76. Err(e) => {
  77. assert_eq!(e.code, flowy_user::errors::ErrorCode::PasswordNotMatch);
  78. },
  79. }
  80. }
  81. #[actix_rt::test]
  82. async fn user_update_name() {
  83. let app = spawn_app().await;
  84. let sign_up_resp = sign_up_user(&app).await;
  85. let name = "tom".to_string();
  86. let params = UpdateUserParams::new(&sign_up_resp.user_id).name(&name);
  87. app.update_user_detail(&sign_up_resp.token, params)
  88. .await
  89. .unwrap();
  90. let user = app.get_user_detail(&sign_up_resp.token).await;
  91. assert_eq!(user.name, name);
  92. }
  93. #[actix_rt::test]
  94. async fn user_update_email() {
  95. let app = spawn_app().await;
  96. let sign_up_resp = sign_up_user(&app).await;
  97. let email = "[email protected]".to_string();
  98. let params = UpdateUserParams::new(&sign_up_resp.user_id).email(&email);
  99. app.update_user_detail(&sign_up_resp.token, params)
  100. .await
  101. .unwrap();
  102. let user = app.get_user_detail(&sign_up_resp.token).await;
  103. assert_eq!(user.email, email);
  104. }
  105. async fn sign_up_user(app: &TestApp) -> SignUpResponse {
  106. let email = "[email protected]";
  107. let password = "HelloWorld123!";
  108. let response = register_user(&app, email, password).await;
  109. response
  110. }
  111. async fn register_user(app: &TestApp, email: &str, password: &str) -> SignUpResponse {
  112. let params = SignUpParams {
  113. email: email.to_string(),
  114. name: "annie".to_string(),
  115. password: password.to_string(),
  116. };
  117. let response = app.register_user(params).await;
  118. response
  119. }