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

61 lines
1.6 KiB
Rust
Raw Normal View History

2021-12-08 09:33:22 +00:00
pub mod event_builder;
pub mod helper;
2021-07-16 15:18:12 +00:00
use crate::helper::*;
use flowy_core::{FlowySDK, FlowySDKConfig};
2022-10-22 13:57:44 +00:00
use flowy_document::entities::DocumentVersionPB;
use flowy_net::get_client_server_configuration;
2022-07-19 06:40:56 +00:00
use flowy_user::entities::UserProfilePB;
2022-04-11 07:27:03 +00:00
use nanoid::nanoid;
2021-07-06 06:14:47 +00:00
pub mod prelude {
2021-12-08 09:33:22 +00:00
pub use crate::{event_builder::*, helper::*, *};
pub use lib_dispatch::prelude::*;
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: FlowySDK,
}
2021-12-08 09:33:22 +00:00
impl std::ops::Deref for FlowySDKTest {
type Target = FlowySDK;
2022-01-23 04:14:00 +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 {
2022-10-22 13:57:44 +00:00
Self::new(DocumentVersionPB::V0)
2021-12-08 09:33:22 +00:00
}
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 {
2022-10-22 13:57:44 +00:00
pub fn new(document_version: DocumentVersionPB) -> Self {
let server_config = get_client_server_configuration().unwrap();
feat: Customize the storage folder path (#1538) * feat: support customize folder path * feat: add l10n and optimize the logic * chore: code refactor * feat: add file read/write permission for macOS * fix: add toast for restoring path * feat: fetch apps and show them * feat: fetch apps and show them * feat: implement select document logic * feat: l10n and add select item callback * feat: add space between tile * chore: move file exporter to settings * chore: update UI * feat: support customizing folder when launching the app * feat: auto register after customizing folder * feat: l10n * feat: l10n * chore: reinitialize flowy sdk when calling init_sdk * chore: remove flowysdk const keyword to make sure it can be rebuild * chore: clear kv values when user logout * chore: replace current workspace id key in kv.db * feat: add config.name as a part of seesion_cache_key * feat: support open folder when launching * chore: fix some bugs * chore: dart fix & flutter analyze * chore: wrap 'sign up with ramdom user' as interface * feat: dismiss settings view after changing the folder * fix: read kv value after initializaing with new path * chore: remove user_id prefix from current workspace key * fix: move open latest view action to bloc * test: add test utils for integration tests * chore: move integration_test to its parent directory * test: add integration_test ci * test: switch to B from A, then switch to A again * chore: fix warings and format code and fix tests * chore: remove comment out codes * chore: rename some properties name and optimize the logic * chore: abstract logic of settings file exporter widget to cubit * chore: abstract location customizer view from file system view * chore: abstract settings page index to enum type * chore: remove the redundant underscore * test: fix integration test error * chore: enable integration test for windows and ubuntu * feat: abstract file picker as service and mock it under integration test * chore: fix bloc test Co-authored-by: nathan <nathan@appflowy.io>
2022-12-20 03:14:42 +00:00
let config = FlowySDKConfig::new(&root_dir(), nanoid!(6), server_config)
2022-10-22 13:57:44 +00:00
.with_document_version(document_version)
.log_filter("info", vec![]);
2022-01-24 08:27:40 +00:00
let sdk = std::thread::spawn(|| FlowySDK::new(config)).join().unwrap();
2022-01-07 09:37:11 +00:00
std::mem::forget(sdk.dispatcher());
Self { inner: sdk }
}
2021-09-27 15:23:23 +00:00
pub async fn sign_up(&self) -> SignUpContext {
async_sign_up(self.inner.dispatcher()).await
2021-09-04 07:12:53 +00:00
}
2022-07-19 06:40:56 +00:00
pub async fn init_user(&self) -> UserProfilePB {
2022-01-07 09:37:11 +00:00
let context = async_sign_up(self.inner.dispatcher()).await;
init_user_setting(self.inner.dispatcher()).await;
context.user_profile
}
2022-10-22 13:57:44 +00:00
pub fn document_version(&self) -> DocumentVersionPB {
self.inner.config.document.version.clone()
}
2021-07-06 06:14:47 +00:00
}