mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
test: add databaase event test (#2728)
* test: add tests and fix modify primary field bug * test: add more test * fix: tauri buiuld * chore: disable share link button
This commit is contained in:
@ -5,10 +5,10 @@ use nanoid::nanoid;
|
||||
use parking_lot::RwLock;
|
||||
|
||||
use flowy_core::{AppFlowyCore, AppFlowyCoreConfig};
|
||||
use flowy_folder2::entities::{
|
||||
CreateViewPayloadPB, RepeatedViewIdPB, ViewIdPB, ViewPB, WorkspaceSettingPB,
|
||||
};
|
||||
use flowy_database2::entities::*;
|
||||
use flowy_folder2::entities::*;
|
||||
use flowy_user::entities::{AuthTypePB, UserProfilePB};
|
||||
use flowy_user::errors::FlowyError;
|
||||
|
||||
use crate::event_builder::EventBuilder;
|
||||
use crate::user_event::{async_sign_up, init_user_setting, SignUpContext};
|
||||
@ -113,6 +113,210 @@ impl FlowyCoreTest {
|
||||
.parse::<flowy_folder2::entities::ViewPB>()
|
||||
}
|
||||
|
||||
pub async fn create_grid(&self, parent_id: &str, name: String, initial_data: Vec<u8>) -> ViewPB {
|
||||
let payload = CreateViewPayloadPB {
|
||||
parent_view_id: parent_id.to_string(),
|
||||
name,
|
||||
desc: "".to_string(),
|
||||
thumbnail: None,
|
||||
layout: ViewLayoutPB::Grid,
|
||||
initial_data,
|
||||
meta: Default::default(),
|
||||
set_as_current: true,
|
||||
};
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_folder2::event_map::FolderEvent::CreateView)
|
||||
.payload(payload)
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<flowy_folder2::entities::ViewPB>()
|
||||
}
|
||||
|
||||
pub async fn get_database(&self, view_id: &str) -> DatabasePB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::GetDatabase)
|
||||
.payload(DatabaseViewIdPB {
|
||||
value: view_id.to_string(),
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<flowy_database2::entities::DatabasePB>()
|
||||
}
|
||||
|
||||
pub async fn get_all_database_fields(&self, view_id: &str) -> RepeatedFieldPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::GetFields)
|
||||
.payload(GetFieldPayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
field_ids: None,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<RepeatedFieldPB>()
|
||||
}
|
||||
|
||||
pub async fn create_field(&self, view_id: &str, field_type: FieldType) -> FieldPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::CreateTypeOption)
|
||||
.payload(CreateFieldPayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
field_type,
|
||||
type_option_data: None,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<TypeOptionPB>()
|
||||
.field
|
||||
}
|
||||
|
||||
pub async fn update_field(&self, changeset: FieldChangesetPB) {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::UpdateField)
|
||||
.payload(changeset)
|
||||
.async_send()
|
||||
.await;
|
||||
}
|
||||
|
||||
pub async fn delete_field(&self, view_id: &str, field_id: &str) -> Option<FlowyError> {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::DeleteField)
|
||||
.payload(DeleteFieldPayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
field_id: field_id.to_string(),
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn update_field_type(
|
||||
&self,
|
||||
view_id: &str,
|
||||
field_id: &str,
|
||||
field_type: FieldType,
|
||||
) -> Option<FlowyError> {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::UpdateFieldType)
|
||||
.payload(UpdateFieldTypePayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
field_id: field_id.to_string(),
|
||||
field_type,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn duplicate_field(&self, view_id: &str, field_id: &str) -> Option<FlowyError> {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::DuplicateField)
|
||||
.payload(DuplicateFieldPayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
field_id: field_id.to_string(),
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn create_row(
|
||||
&self,
|
||||
view_id: &str,
|
||||
start_row_id: Option<String>,
|
||||
data: Option<RowDataPB>,
|
||||
) -> RowPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::CreateRow)
|
||||
.payload(CreateRowPayloadPB {
|
||||
view_id: view_id.to_string(),
|
||||
start_row_id,
|
||||
group_id: None,
|
||||
data,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<RowPB>()
|
||||
}
|
||||
|
||||
pub async fn get_row(&self, view_id: &str, row_id: &str) -> RowPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::GetRow)
|
||||
.payload(RowIdPB {
|
||||
view_id: view_id.to_string(),
|
||||
row_id: row_id.to_string(),
|
||||
group_id: None,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<RowPB>()
|
||||
}
|
||||
|
||||
pub async fn duplicate_row(&self, view_id: &str, row_id: &str) -> Option<FlowyError> {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::DuplicateRow)
|
||||
.payload(RowIdPB {
|
||||
view_id: view_id.to_string(),
|
||||
row_id: row_id.to_string(),
|
||||
group_id: None,
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn update_cell(&self, changeset: CellChangesetPB) -> Option<FlowyError> {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::UpdateCell)
|
||||
.payload(changeset)
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn get_cell(&self, view_id: &str, row_id: &str, field_id: &str) -> CellPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::GetCell)
|
||||
.payload(CellIdPB {
|
||||
view_id: view_id.to_string(),
|
||||
row_id: row_id.to_string(),
|
||||
field_id: field_id.to_string(),
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<CellPB>()
|
||||
}
|
||||
|
||||
pub async fn insert_option(
|
||||
&self,
|
||||
view_id: &str,
|
||||
field_id: &str,
|
||||
row_id: &str,
|
||||
name: &str,
|
||||
) -> Option<FlowyError> {
|
||||
let option = EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::CreateSelectOption)
|
||||
.payload(CreateSelectOptionPayloadPB {
|
||||
field_id: field_id.to_string(),
|
||||
view_id: view_id.to_string(),
|
||||
option_name: name.to_string(),
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.parse::<SelectOptionPB>();
|
||||
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_database2::event_map::DatabaseEvent::InsertOrUpdateSelectOption)
|
||||
.payload(RepeatedSelectOptionPayload {
|
||||
view_id: view_id.to_string(),
|
||||
field_id: field_id.to_string(),
|
||||
row_id: row_id.to_string(),
|
||||
items: vec![option],
|
||||
})
|
||||
.async_send()
|
||||
.await
|
||||
.error()
|
||||
}
|
||||
|
||||
pub async fn get_view(&self, view_id: &str) -> ViewPB {
|
||||
EventBuilder::new(self.clone())
|
||||
.event(flowy_folder2::event_map::FolderEvent::ReadView)
|
||||
|
Reference in New Issue
Block a user