auth.rs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. use crate::helper::{spawn_user_server, TestUserServer};
  2. use flowy_user::entities::{SignInParams, SignUpParams, SignUpResponse, UpdateUserParams};
  3. #[actix_rt::test]
  4. async fn user_register() {
  5. let app = spawn_user_server().await;
  6. let response = register_user(&app, "[email protected]", "HelloWorld123!").await;
  7. tracing::info!("{:?}", response);
  8. }
  9. #[actix_rt::test]
  10. #[should_panic]
  11. async fn user_sign_in_with_invalid_password() {
  12. let app = spawn_user_server().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_user_server().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_user_server().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. name: "rust".to_string(),
  35. };
  36. let _ = app.sign_in(params).await.unwrap();
  37. }
  38. #[actix_rt::test]
  39. #[should_panic]
  40. async fn user_sign_out() {
  41. let server = TestUserServer::new().await;
  42. server.sign_out().await;
  43. // user_detail will be empty because use was sign out.
  44. server.get_user_profile().await;
  45. }
  46. #[actix_rt::test]
  47. async fn user_get_detail() {
  48. let server = TestUserServer::new().await;
  49. tracing::info!("{:?}", server.get_user_profile().await);
  50. }
  51. #[actix_rt::test]
  52. async fn user_update_password() {
  53. let mut server = spawn_user_server().await;
  54. let email = "[email protected]";
  55. let password = "HelloWorld123!";
  56. let sign_up_resp = register_user(&server, email, password).await;
  57. let params = UpdateUserParams::new(&sign_up_resp.user_id).password("Hello123!");
  58. server.user_token = Some(sign_up_resp.token);
  59. server.update_user_profile(params).await.unwrap();
  60. let sign_in_params = SignInParams {
  61. email: email.to_string(),
  62. password: password.to_string(),
  63. name: "rust".to_string(),
  64. };
  65. match server.sign_in(sign_in_params).await {
  66. Ok(_) => {},
  67. Err(e) => {
  68. assert_eq!(e.code, flowy_user::errors::ErrorCode::PasswordNotMatch);
  69. },
  70. }
  71. }
  72. #[actix_rt::test]
  73. async fn user_update_name() {
  74. let server = TestUserServer::new().await;
  75. let name = "tom".to_string();
  76. let params = UpdateUserParams::new(&server.user_id()).name(&name);
  77. server.update_user_profile(params).await.unwrap();
  78. let user = server.get_user_profile().await;
  79. assert_eq!(user.name, name);
  80. }
  81. #[actix_rt::test]
  82. async fn user_update_email() {
  83. let server = TestUserServer::new().await;
  84. let email = "[email protected]".to_string();
  85. let params = UpdateUserParams::new(server.user_id()).email(&email);
  86. server.update_user_profile(params).await.unwrap();
  87. let user = server.get_user_profile().await;
  88. assert_eq!(user.email, email);
  89. }
  90. #[allow(dead_code)]
  91. async fn sign_up_user(server: &TestUserServer) -> SignUpResponse {
  92. let email = "[email protected]";
  93. let password = "HelloWorld123!";
  94. let response = register_user(server, email, password).await;
  95. response
  96. }
  97. async fn register_user(server: &TestUserServer, email: &str, password: &str) -> SignUpResponse {
  98. let params = SignUpParams {
  99. email: email.to_string(),
  100. name: "annie".to_string(),
  101. password: password.to_string(),
  102. };
  103. let response = server.register(params).await;
  104. response
  105. }