mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: rename folder builder for re-use (#5020)
This commit is contained in:
@ -1,21 +1,22 @@
|
||||
use std::future::Future;
|
||||
|
||||
use crate::cloud::gen_view_id;
|
||||
use collab_folder::{RepeatedViewIdentifier, View, ViewIcon, ViewIdentifier, ViewLayout};
|
||||
use lib_infra::util::timestamp;
|
||||
use std::future::Future;
|
||||
|
||||
/// A builder for creating a view for a workspace.
|
||||
/// The views created by this builder will be the first level views of the workspace.
|
||||
pub struct WorkspaceViewBuilder {
|
||||
/// A builder for creating views, each able to have children views of
|
||||
/// their own.
|
||||
pub struct NestedViewBuilder {
|
||||
pub uid: i64,
|
||||
pub workspace_id: String,
|
||||
pub parent_view_id: String,
|
||||
pub views: Vec<ParentChildViews>,
|
||||
}
|
||||
|
||||
impl WorkspaceViewBuilder {
|
||||
pub fn new(workspace_id: String, uid: i64) -> Self {
|
||||
impl NestedViewBuilder {
|
||||
pub fn new(parent_view_id: String, uid: i64) -> Self {
|
||||
Self {
|
||||
uid,
|
||||
workspace_id,
|
||||
parent_view_id,
|
||||
views: vec![],
|
||||
}
|
||||
}
|
||||
@ -25,7 +26,7 @@ impl WorkspaceViewBuilder {
|
||||
F: Fn(ViewBuilder) -> O,
|
||||
O: Future<Output = ParentChildViews>,
|
||||
{
|
||||
let builder = ViewBuilder::new(self.uid, self.workspace_id.clone());
|
||||
let builder = ViewBuilder::new(self.uid, self.parent_view_id.clone());
|
||||
self.views.push(view_builder(builder).await);
|
||||
}
|
||||
|
||||
@ -182,12 +183,12 @@ impl FlattedViews {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::folder_builder::{FlattedViews, WorkspaceViewBuilder};
|
||||
use crate::folder_builder::{FlattedViews, NestedViewBuilder};
|
||||
|
||||
#[tokio::test]
|
||||
async fn create_first_level_views_test() {
|
||||
let workspace_id = "w1".to_string();
|
||||
let mut builder = WorkspaceViewBuilder::new(workspace_id, 1);
|
||||
let mut builder = NestedViewBuilder::new(workspace_id, 1);
|
||||
builder
|
||||
.with_view_builder(|view_builder| async { view_builder.with_name("1").build() })
|
||||
.await;
|
||||
@ -207,7 +208,7 @@ mod tests {
|
||||
#[tokio::test]
|
||||
async fn create_view_with_child_views_test() {
|
||||
let workspace_id = "w1".to_string();
|
||||
let mut builder = WorkspaceViewBuilder::new(workspace_id, 1);
|
||||
let mut builder = NestedViewBuilder::new(workspace_id, 1);
|
||||
builder
|
||||
.with_view_builder(|view_builder| async {
|
||||
view_builder
|
||||
@ -247,10 +248,11 @@ mod tests {
|
||||
let views = FlattedViews::flatten_views(workspace_views);
|
||||
assert_eq!(views.len(), 5);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn create_three_level_view_test() {
|
||||
let workspace_id = "w1".to_string();
|
||||
let mut builder = WorkspaceViewBuilder::new(workspace_id, 1);
|
||||
let mut builder = NestedViewBuilder::new(workspace_id, 1);
|
||||
builder
|
||||
.with_view_builder(|view_builder| async {
|
||||
view_builder
|
||||
|
Reference in New Issue
Block a user