AppFlowy/frontend/rust-lib/flowy-test/src/lib.rs

58 lines
1.2 KiB
Rust
Raw Normal View History

use nanoid::nanoid;
use std::env::temp_dir;
use flowy_core::{AppFlowyCore, AppFlowyCoreConfig};
2022-07-19 06:40:56 +00:00
use flowy_user::entities::UserProfilePB;
use crate::helper::*;
pub mod event_builder;
pub mod helper;
2021-07-06 06:14:47 +00:00
pub mod prelude {
pub use lib_dispatch::prelude::*;
pub use crate::{event_builder::*, helper::*, *};
2021-07-06 06:14:47 +00:00
}
2021-09-04 07:12:53 +00:00
#[derive(Clone)]
2022-01-07 09:37:11 +00:00
pub struct FlowySDKTest {
pub inner: AppFlowyCore,
2022-01-07 09:37:11 +00:00
}
2021-12-08 09:33:22 +00:00
impl std::ops::Deref for FlowySDKTest {
type Target = AppFlowyCore;
2021-12-08 09:33:22 +00:00
fn deref(&self) -> &Self::Target {
&self.inner
}
2021-09-04 07:12:53 +00:00
}
2022-01-07 09:37:11 +00:00
impl std::default::Default for FlowySDKTest {
fn default() -> Self {
Self::new()
}
2022-01-07 09:37:11 +00:00
}
2021-12-08 09:33:22 +00:00
2022-01-07 09:37:11 +00:00
impl FlowySDKTest {
pub fn new() -> Self {
let config =
AppFlowyCoreConfig::new(temp_dir().to_str().unwrap(), nanoid!(6)).log_filter("info", vec![]);
let sdk = std::thread::spawn(|| AppFlowyCore::new(config))
.join()
.unwrap();
std::mem::forget(sdk.dispatcher());
Self { inner: sdk }
}
pub async fn sign_up(&self) -> SignUpContext {
async_sign_up(self.inner.dispatcher()).await
}
pub async fn init_user(&self) -> UserProfilePB {
let context = async_sign_up(self.inner.dispatcher()).await;
init_user_setting(self.inner.dispatcher()).await;
context.user_profile
}
2021-07-06 06:14:47 +00:00
}