133 lines
3.7 KiB
Rust
Raw Normal View History

use crate::helper::*;
2021-12-08 17:33:22 +08:00
use flowy_test::{event_builder::UserModuleEventBuilder, FlowySDKTest};
2021-08-30 22:44:17 +08:00
use flowy_user::{errors::ErrorCode, event::UserEvent::*, prelude::*};
use lib_infra::uuid;
use serial_test::*;
#[tokio::test]
async fn user_profile_get_failed() {
2021-12-08 17:33:22 +08:00
let sdk = FlowySDKTest::setup();
let result = UserModuleEventBuilder::new(sdk)
.event(GetUserProfile)
.assert_error()
.async_send()
.await;
2021-09-04 16:53:58 +08:00
assert!(result.user_profile().is_none())
2021-09-01 17:57:06 +08:00
}
#[tokio::test]
2021-09-01 17:57:06 +08:00
#[serial]
async fn user_profile_get() {
2021-12-08 17:33:22 +08:00
let test = FlowySDKTest::setup();
let user_profile = test.init_user().await;
2021-12-08 17:33:22 +08:00
let user = UserModuleEventBuilder::new(test.clone())
.event(GetUserProfile)
.sync_send()
2021-09-04 16:53:58 +08:00
.parse::<UserProfile>();
assert_eq!(user_profile, user);
2021-09-01 17:57:06 +08:00
}
#[tokio::test]
#[serial]
async fn user_update_with_name() {
2021-12-08 17:33:22 +08:00
let sdk = FlowySDKTest::setup();
let user = sdk.init_user().await;
let new_name = "hello_world".to_owned();
let request = UpdateUserRequest::new(&user.id).name(&new_name);
2021-12-08 17:33:22 +08:00
let _ = UserModuleEventBuilder::new(sdk.clone())
.event(UpdateUser)
.request(request)
.sync_send();
2021-08-31 23:01:46 +08:00
2021-12-08 17:33:22 +08:00
let user_profile = UserModuleEventBuilder::new(sdk.clone())
2021-08-31 23:01:46 +08:00
.event(GetUserProfile)
.assert_error()
.sync_send()
2021-09-04 16:53:58 +08:00
.parse::<UserProfile>();
2021-09-04 16:53:58 +08:00
assert_eq!(user_profile.name, new_name,);
}
#[tokio::test]
#[serial]
async fn user_update_with_email() {
2021-12-08 17:33:22 +08:00
let sdk = FlowySDKTest::setup();
let user = sdk.init_user().await;
2021-11-09 15:32:57 +08:00
let new_email = format!("{}@gmail.com", uuid());
let request = UpdateUserRequest::new(&user.id).email(&new_email);
2021-12-08 17:33:22 +08:00
let _ = UserModuleEventBuilder::new(sdk.clone())
.event(UpdateUser)
.request(request)
.sync_send();
let user_profile = UserModuleEventBuilder::new(sdk.clone())
2021-08-31 23:01:46 +08:00
.event(GetUserProfile)
.assert_error()
.sync_send()
2021-09-04 16:53:58 +08:00
.parse::<UserProfile>();
2021-09-04 16:53:58 +08:00
assert_eq!(user_profile.email, new_email,);
}
#[tokio::test]
#[serial]
async fn user_update_with_password() {
2021-12-08 17:33:22 +08:00
let sdk = FlowySDKTest::setup();
let user = sdk.init_user().await;
let new_password = "H123world!".to_owned();
let request = UpdateUserRequest::new(&user.id).password(&new_password);
2021-12-08 17:33:22 +08:00
let _ = UserModuleEventBuilder::new(sdk.clone())
.event(UpdateUser)
.request(request)
.sync_send()
.assert_success();
}
#[tokio::test]
#[serial]
async fn user_update_with_invalid_email() {
2021-12-08 17:33:22 +08:00
let test = FlowySDKTest::setup();
let user = test.init_user().await;
for email in invalid_email_test_case() {
let request = UpdateUserRequest::new(&user.id).email(&email);
assert_eq!(
2021-12-08 17:33:22 +08:00
UserModuleEventBuilder::new(test.clone())
.event(UpdateUser)
.request(request)
.sync_send()
.error()
.code,
ErrorCode::EmailFormatInvalid.value()
);
}
}
#[tokio::test]
#[serial]
async fn user_update_with_invalid_password() {
2021-12-08 17:33:22 +08:00
let test = FlowySDKTest::setup();
let user = test.init_user().await;
for password in invalid_password_test_case() {
let request = UpdateUserRequest::new(&user.id).password(&password);
2021-12-08 17:33:22 +08:00
UserModuleEventBuilder::new(test.clone())
2021-09-04 15:12:53 +08:00
.event(UpdateUser)
.request(request)
.sync_send()
.assert_error();
}
}
#[tokio::test]
#[serial]
async fn user_update_with_invalid_name() {
2021-12-08 17:33:22 +08:00
let test = FlowySDKTest::setup();
let user = test.init_user().await;
let request = UpdateUserRequest::new(&user.id).name("");
2021-12-08 17:33:22 +08:00
UserModuleEventBuilder::new(test.clone())
2021-09-04 15:12:53 +08:00
.event(UpdateUser)
.request(request)
.sync_send()
.assert_error();
}