123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- use std::collections::HashMap;
- use std::sync::Arc;
- use parking_lot::RwLock;
- use uuid::Uuid;
- use flowy_server::supabase::impls::{SupabaseUserAuthServiceImpl, USER_UUID};
- use flowy_server::supabase::{PostgresServer, SupabaseServerServiceImpl};
- use flowy_server_config::supabase_config::PostgresConfiguration;
- use flowy_user::entities::{SignUpResponse, UpdateUserProfileParams};
- use flowy_user::event_map::{UserAuthService, UserCredentials};
- use lib_infra::box_any::BoxAny;
- use crate::setup_log;
- // ‼️‼️‼️ Warning: this test will create a table in the database
- #[tokio::test]
- async fn user_sign_up_test() {
- if dotenv::from_filename("./.env.test").is_err() {
- return;
- }
- let user_service = user_auth_service_impl();
- let mut params = HashMap::new();
- params.insert(USER_UUID.to_string(), Uuid::new_v4().to_string());
- let user: SignUpResponse = user_service.sign_up(BoxAny::new(params)).await.unwrap();
- assert!(!user.workspace_id.is_empty());
- }
- fn user_auth_service_impl() -> SupabaseUserAuthServiceImpl<SupabaseServerServiceImpl> {
- let server = Arc::new(PostgresServer::new(
- PostgresConfiguration::from_env().unwrap(),
- ));
- let weak_server = SupabaseServerServiceImpl(Arc::new(RwLock::new(Some(server))));
- SupabaseUserAuthServiceImpl::new(weak_server)
- }
- #[tokio::test]
- async fn user_sign_up_with_existing_uuid_test() {
- if dotenv::from_filename("./.env.test").is_err() {
- return;
- }
- let user_service = user_auth_service_impl();
- let uuid = Uuid::new_v4();
- let mut params = HashMap::new();
- params.insert(USER_UUID.to_string(), uuid.to_string());
- let _user: SignUpResponse = user_service
- .sign_up(BoxAny::new(params.clone()))
- .await
- .unwrap();
- let user: SignUpResponse = user_service.sign_up(BoxAny::new(params)).await.unwrap();
- assert!(!user.workspace_id.is_empty());
- }
- #[tokio::test]
- async fn update_user_profile_test() {
- if dotenv::from_filename("./.env.test").is_err() {
- return;
- }
- let user_service = user_auth_service_impl();
- let uuid = Uuid::new_v4();
- let mut params = HashMap::new();
- params.insert(USER_UUID.to_string(), uuid.to_string());
- let user: SignUpResponse = user_service
- .sign_up(BoxAny::new(params.clone()))
- .await
- .unwrap();
- user_service
- .update_user(
- UserCredentials::from_uid(user.user_id),
- UpdateUserProfileParams {
- id: user.user_id,
- auth_type: Default::default(),
- name: Some("123".to_string()),
- email: Some("[email protected]".to_string()),
- password: None,
- icon_url: None,
- openai_key: None,
- },
- )
- .await
- .unwrap();
- let user_profile = user_service
- .get_user_profile(UserCredentials::from_uid(user.user_id))
- .await
- .unwrap()
- .unwrap();
- assert_eq!(user_profile.name, "123");
- }
- #[tokio::test]
- async fn get_user_profile_test() {
- if dotenv::from_filename("./.env.test").is_err() {
- return;
- }
- setup_log();
- let user_service = user_auth_service_impl();
- let uuid = Uuid::new_v4();
- let mut params = HashMap::new();
- params.insert(USER_UUID.to_string(), uuid.to_string());
- let user: SignUpResponse = user_service
- .sign_up(BoxAny::new(params.clone()))
- .await
- .unwrap();
- let credential = UserCredentials::from_uid(user.user_id);
- user_service
- .get_user_profile(credential.clone())
- .await
- .unwrap()
- .unwrap();
- user_service
- .get_user_profile(credential.clone())
- .await
- .unwrap()
- .unwrap();
- user_service
- .get_user_profile(credential.clone())
- .await
- .unwrap()
- .unwrap();
- user_service
- .get_user_profile(credential.clone())
- .await
- .unwrap()
- .unwrap();
- user_service
- .get_user_profile(credential)
- .await
- .unwrap()
- .unwrap();
- }
- #[tokio::test]
- async fn get_not_exist_user_profile_test() {
- if dotenv::from_filename("./.env.test").is_err() {
- return;
- }
- setup_log();
- let user_service = user_auth_service_impl();
- let result = user_service
- .get_user_profile(UserCredentials::from_uid(i64::MAX))
- .await
- .unwrap();
- // user not found
- assert!(result.is_none());
- }
|