auth.rs 3.6 KB

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