| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | use uuid::Uuid;use flowy_encrypt::{encrypt_text, generate_encryption_secret};use flowy_user_deps::entities::*;use lib_infra::box_any::BoxAny;use crate::supabase_test::util::{  get_supabase_ci_config, third_party_sign_up_param, user_auth_service,};// ‼️‼️‼️ Warning: this test will create a table in the database#[tokio::test]async fn supabase_user_sign_up_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let uuid = Uuid::new_v4().to_string();  let params = third_party_sign_up_param(uuid);  let user: SignUpResponse = user_service.sign_up(BoxAny::new(params)).await.unwrap();  assert!(!user.latest_workspace.id.is_empty());  assert!(!user.user_workspaces.is_empty());  assert!(!user.latest_workspace.database_views_aggregate_id.is_empty());}#[tokio::test]async fn supabase_user_sign_up_with_existing_uuid_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let uuid = Uuid::new_v4().to_string();  let params = third_party_sign_up_param(uuid);  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.latest_workspace.id.is_empty());  assert!(!user.latest_workspace.database_views_aggregate_id.is_empty());  assert!(!user.user_workspaces.is_empty());}#[tokio::test]async fn supabase_update_user_profile_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let uuid = Uuid::new_v4().to_string();  let params = third_party_sign_up_param(uuid);  let user: SignUpResponse = user_service    .sign_up(BoxAny::new(params.clone()))    .await    .unwrap();  user_service    .update_user(      UserCredentials::from_uid(user.user_id),      UpdateUserProfileParams {        uid: user.user_id,        name: Some("123".to_string()),        email: Some(format!("{}@test.com", Uuid::new_v4())),        password: None,        icon_url: None,        openai_key: None,        encryption_sign: 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 supabase_get_user_profile_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let uuid = Uuid::new_v4().to_string();  let params = third_party_sign_up_param(uuid);  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();}#[tokio::test]async fn supabase_get_not_exist_user_profile_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let result = user_service    .get_user_profile(UserCredentials::from_uid(i64::MAX))    .await    .unwrap();  // user not found  assert!(result.is_none());}#[tokio::test]async fn user_encryption_sign_test() {  if get_supabase_ci_config().is_none() {    return;  }  let user_service = user_auth_service();  let uuid = Uuid::new_v4().to_string();  let params = third_party_sign_up_param(uuid);  let user: SignUpResponse = user_service.sign_up(BoxAny::new(params)).await.unwrap();  // generate encryption sign  let secret = generate_encryption_secret();  let sign = encrypt_text(user.user_id.to_string(), &secret).unwrap();  user_service    .update_user(      UserCredentials::from_uid(user.user_id),      UpdateUserProfileParams::new(user.user_id)        .with_encryption_type(EncryptionType::SelfEncryption(sign.clone())),    )    .await    .unwrap();  let user_profile: UserProfile = user_service    .get_user_profile(UserCredentials::from_uid(user.user_id))    .await    .unwrap()    .unwrap();  assert_eq!(    user_profile.encryption_type,    EncryptionType::SelfEncryption(sign)  );}
 |