| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | use crate::helper::{spawn_app, TestApp};
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:37:46 +08:00
										 |  |  | use flowy_user::entities::{SignInParams, SignUpParams, SignUpResponse, UpdateUserParams};
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_register() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let response = register_user(&app, "annie@appflowy.io", "HelloWorld123!").await;
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  |     log::info!("{:?}", response);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | #[should_panic]
 | 
					
						
							|  |  |  | async fn user_sign_in_with_invalid_password() {
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let email = "annie@appflowy.io";
 | 
					
						
							|  |  |  |     let password = "123";
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  |     let _ = register_user(&app, email, password).await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | #[should_panic]
 | 
					
						
							|  |  |  | async fn user_sign_in_with_invalid_email() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let email = "annie@gmail@";
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let password = "HelloWorld123!";
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  |     let _ = register_user(&app, email, password).await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_sign_in() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let email = "annie@appflowy.io";
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let password = "HelloWorld123!";
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  |     let _ = register_user(&app, email, password).await;
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let params = SignInParams {
 | 
					
						
							|  |  |  |         email: email.to_string(),
 | 
					
						
							|  |  |  |         password: password.to_string(),
 | 
					
						
							|  |  |  |     };
 | 
					
						
							|  |  |  |     let _ = app.sign_in(params).await.unwrap();
 | 
					
						
							| 
									
										
										
										
											2021-08-23 22:10:36 +08:00
										 |  |  | }
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:25:08 +08:00
										 |  |  | #[actix_rt::test]
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  | #[should_panic]
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:25:08 +08:00
										 |  |  | async fn user_sign_out() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let email = "annie@appflowy.io";
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let password = "HelloWorld123!";
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:25:08 +08:00
										 |  |  |     let _ = register_user(&app, email, password).await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let params = SignInParams {
 | 
					
						
							|  |  |  |         email: email.to_string(),
 | 
					
						
							|  |  |  |         password: password.to_string(),
 | 
					
						
							|  |  |  |     };
 | 
					
						
							|  |  |  |     let sign_in_resp = app.sign_in(params).await.unwrap();
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  |     let token = sign_in_resp.token.clone();
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:37:46 +08:00
										 |  |  |     app.sign_out(&token).await;
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     // user_detail will be empty because use was sign out.
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     app.get_user_profile(&token).await;
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_get_detail() {
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let sign_up_resp = sign_up_user(&app).await;
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     log::info!("{:?}", app.get_user_profile(&sign_up_resp.token).await);
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_update_password() {
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let email = "annie@appflowy.io";
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     let password = "HelloWorld123!";
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  |     let sign_up_resp = register_user(&app, email, password).await;
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-02 14:47:39 +08:00
										 |  |  |     let params = UpdateUserParams::new(&sign_up_resp.user_id).password("Hello123!");
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     app.update_user_profile(&sign_up_resp.token, params)
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |         .await
 | 
					
						
							|  |  |  |         .unwrap();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let sign_in_params = SignInParams {
 | 
					
						
							|  |  |  |         email: email.to_string(),
 | 
					
						
							|  |  |  |         password: password.to_string(),
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:56:38 +08:00
										 |  |  |     };
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     match app.sign_in(sign_in_params).await {
 | 
					
						
							|  |  |  |         Ok(_) => {},
 | 
					
						
							|  |  |  |         Err(e) => {
 | 
					
						
							|  |  |  |             assert_eq!(e.code, flowy_user::errors::ErrorCode::PasswordNotMatch);
 | 
					
						
							|  |  |  |         },
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_update_name() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let sign_up_resp = sign_up_user(&app).await;
 | 
					
						
							|  |  |  |     let name = "tom".to_string();
 | 
					
						
							| 
									
										
										
										
											2021-09-02 14:47:39 +08:00
										 |  |  |     let params = UpdateUserParams::new(&sign_up_resp.user_id).name(&name);
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     app.update_user_profile(&sign_up_resp.token, params)
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |         .await
 | 
					
						
							|  |  |  |         .unwrap();
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     let user = app.get_user_profile(&sign_up_resp.token).await;
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     assert_eq!(user.name, name);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[actix_rt::test]
 | 
					
						
							|  |  |  | async fn user_update_email() {
 | 
					
						
							|  |  |  |     let app = spawn_app().await;
 | 
					
						
							|  |  |  |     let sign_up_resp = sign_up_user(&app).await;
 | 
					
						
							|  |  |  |     let email = "123@gmail.com".to_string();
 | 
					
						
							| 
									
										
										
										
											2021-09-02 14:47:39 +08:00
										 |  |  |     let params = UpdateUserParams::new(&sign_up_resp.user_id).email(&email);
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     app.update_user_profile(&sign_up_resp.token, params)
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |         .await
 | 
					
						
							|  |  |  |         .unwrap();
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-04 16:53:58 +08:00
										 |  |  |     let user = app.get_user_profile(&sign_up_resp.token).await;
 | 
					
						
							| 
									
										
										
										
											2021-09-01 16:08:32 +08:00
										 |  |  |     assert_eq!(user.email, email);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | async fn sign_up_user(app: &TestApp) -> SignUpResponse {
 | 
					
						
							|  |  |  |     let email = "annie@appflowy.io";
 | 
					
						
							|  |  |  |     let password = "HelloWorld123!";
 | 
					
						
							|  |  |  |     let response = register_user(&app, email, password).await;
 | 
					
						
							|  |  |  |     response
 | 
					
						
							| 
									
										
										
										
											2021-08-31 17:25:08 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-24 13:10:53 +08:00
										 |  |  | async fn register_user(app: &TestApp, email: &str, password: &str) -> SignUpResponse {
 | 
					
						
							|  |  |  |     let params = SignUpParams {
 | 
					
						
							|  |  |  |         email: email.to_string(),
 | 
					
						
							|  |  |  |         name: "annie".to_string(),
 | 
					
						
							|  |  |  |         password: password.to_string(),
 | 
					
						
							|  |  |  |     };
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let response = app.register_user(params).await;
 | 
					
						
							|  |  |  |     response
 | 
					
						
							|  |  |  | }
 |