diff --git a/collab/Cargo.toml b/collab/Cargo.toml index da4e52e58..35cf7b74f 100644 --- a/collab/Cargo.toml +++ b/collab/Cargo.toml @@ -59,7 +59,7 @@ blake3.workspace = true [dev-dependencies] tokio = { workspace = true, features = ["macros", "sync", "rt"] } tempfile = "3.8.0" -collab = { path = "", default-features = false } +collab = { path = "", features = ["plugins"] } chrono.workspace = true assert-json-diff = "2.0.2" tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } @@ -77,10 +77,29 @@ lock_timeout = [] rwlock_reason = [] import_csv = [] +[[test]] +name = "database" +path = "tests/database/main.rs" + +[[test]] +name = "document" +path = "tests/document/main.rs" + +[[test]] +name = "folder" +path = "tests/folder/main.rs" + +[[test]] +name = "importer" +path = "tests/importer/main.rs" + +[[test]] +name = "user" +path = "tests/user/main.rs" + [[test]] name = "plugins" path = "tests/plugins/main.rs" -required-features = ["plugins"] [build-dependencies] prost-build = "0.12" diff --git a/collab/tests/database/database_test/view_observe_test.rs b/collab/tests/database/database_test/view_observe_test.rs index a89bc7956..8455ac58c 100644 --- a/collab/tests/database/database_test/view_observe_test.rs +++ b/collab/tests/database/database_test/view_observe_test.rs @@ -156,7 +156,7 @@ async fn observe_move_database_row_test() { let cloned_database_test = database_test.clone(); let cloned_row_id_1 = row_id_1; - let views = database_test.lock().await.get_all_views(); + let views = database_test.lock().await.get_all_views(false); assert_eq!(views.len(), 1); let view_id = views[0].id; let row_orders = database_test @@ -275,7 +275,7 @@ async fn observe_move_database_view_row_test() { .unwrap(); let second_view_id = uuid::Uuid::new_v4().to_string(); - let first_view_id = database_test.get_all_views().first().unwrap().id; + let first_view_id = database_test.get_all_views(false).first().unwrap().id; database_test .create_linked_view(CreateViewParams { database_id: database_uuid, @@ -290,7 +290,7 @@ async fn observe_move_database_view_row_test() { let cloned_database_test = database_test.clone(); let cloned_row_id_1 = row_id_1; - let views = database_test.lock().await.get_all_views(); + let views = database_test.lock().await.get_all_views(false); assert_eq!(views.len(), 2); let cloned_row_id_3 = row_id_3; diff --git a/collab/tests/database/database_test/view_test.rs b/collab/tests/database/database_test/view_test.rs index e68f0c753..0bfc0bbe4 100644 --- a/collab/tests/database/database_test/view_test.rs +++ b/collab/tests/database/database_test/view_test.rs @@ -39,7 +39,7 @@ async fn create_initial_database_test() { database_id ); - let views = database_test.get_all_views(); + let views = database_test.get_all_views(false); assert_eq!(views.len(), 1); assert_eq!(views[0].database_id.to_string(), database_id); assert_ne!(views[0].database_id.to_string(), views[0].id.to_string()); @@ -213,13 +213,13 @@ async fn delete_database_view_test() { database_test.create_linked_view(params).unwrap(); } - let views = database_test.get_all_views(); + let views = database_test.get_all_views(false); assert_eq!(views.len(), 4); let deleted_view_id = view_ids[1].to_string(); database_test.delete_view(&deleted_view_id); let views = database_test - .get_all_views() + .get_all_views(false) .iter() .map(|view| view.id) .map(|id| id.to_string()) @@ -233,7 +233,7 @@ async fn duplicate_database_view_test() { let database_id = uuid::Uuid::new_v4(); let mut database_test = create_database_with_default_data(1, &database_id.to_string()).await; - let views = database_test.get_all_views(); + let views = database_test.get_all_views(false); assert_eq!(views.len(), 1); let view = database_test.get_view(TEST_VIEW_ID_V1).unwrap(); @@ -241,7 +241,7 @@ async fn duplicate_database_view_test() { .duplicate_linked_view(TEST_VIEW_ID_V1) .unwrap(); - let views = database_test.get_all_views(); + let views = database_test.get_all_views(false); assert_eq!(views.len(), 2); assert_eq!(duplicated_view.name, format!("{}-copy", view.name)); diff --git a/collab/tests/database/main.rs b/collab/tests/database/main.rs index f85e02237..750ac7f04 100644 --- a/collab/tests/database/main.rs +++ b/collab/tests/database/main.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - pub mod database_test; pub mod helper; pub mod remapper; diff --git a/collab/tests/database/user_test/database_test.rs b/collab/tests/database/user_test/database_test.rs index 3dde14d3d..0bb11931c 100644 --- a/collab/tests/database/user_test/database_test.rs +++ b/collab/tests/database/user_test/database_test.rs @@ -19,7 +19,7 @@ async fn create_database_test() { .await; // Inline view id should not appear in the database's linked views. - let non_inline_views = database.get_all_views(); + let non_inline_views = database.get_all_views(false); assert_eq!(non_inline_views.len(), 1); assert_eq!(non_inline_views[0].id, view_id); } @@ -170,17 +170,17 @@ async fn delete_database_linked_view_test() { }) .unwrap(); - let views = database.get_all_views(); + let views = database.get_all_views(false); assert_eq!(views.len(), 2); database.delete_view(TEST_VIEW_ID_V2); - let views = database.get_all_views(); + let views = database.get_all_views(false); assert_eq!(views.len(), 1); database.delete_view(TEST_VIEW_ID_V1); - let views = database.get_all_views(); + let views = database.get_all_views(false); assert_eq!(views.len(), 0); } @@ -209,11 +209,11 @@ async fn delete_database_inline_view_test() { } // there should be 4 views: v1, v2, v3 and v4. - let views = database.get_all_views(); + let views = database.get_all_views(false); assert_eq!(views.len(), 4); database.delete_view(TEST_VIEW_ID_V1); - let views = database.get_all_views(); + let views = database.get_all_views(false); assert_eq!(views.len(), 3); } diff --git a/collab/tests/document/block_parser/ai_meeting_test.rs b/collab/tests/document/block_parser/ai_meeting_test.rs index ad2060c72..fdad1a52a 100644 --- a/collab/tests/document/block_parser/ai_meeting_test.rs +++ b/collab/tests/document/block_parser/ai_meeting_test.rs @@ -1,6 +1,5 @@ use crate::blocks::block_test_core::{BlockTestCore, generate_id}; -use collab::document::block_parser::parsers::ai_meeting::AiMeetingParser; -use collab::document::block_parser::{BlockParser, DocumentParser, OutputFormat, ParseContext}; +use collab::document::block_parser::{DocumentParser, OutputFormat, ParseContext}; use collab::document::blocks::{Block, BlockType}; use serde_json::json; use std::collections::HashMap; diff --git a/collab/tests/document/blocks/mention_integration_test.rs b/collab/tests/document/blocks/mention_integration_test.rs index 4ea24180c..0a9cf61a6 100644 --- a/collab/tests/document/blocks/mention_integration_test.rs +++ b/collab/tests/document/blocks/mention_integration_test.rs @@ -25,58 +25,33 @@ fn test_create_document_with_all_mention_types() { document.insert_block(block, None).unwrap(); // Build a rich delta with all mention types - let mut deltas = Vec::new(); - - // Regular text - deltas.push(TextDelta::Inserted("Hello ".to_string(), None)); - - // Person mention - deltas.push(build_mention_person_delta( - "person_123", - "Alice", - &page_id, - Some(&block_id), - None, - )); - - // More text - deltas.push(TextDelta::Inserted("! Check ".to_string(), None)); - - // Page mention - deltas.push(build_mention_page_delta( - MentionPageType::Page, - "page_456", - Some("block_789"), - None, - )); - - // Text - deltas.push(TextDelta::Inserted(" and ".to_string(), None)); - - // Child page mention - deltas.push(build_mention_page_delta( - MentionPageType::ChildPage, - "child_page_999", - None, - None, - )); - - // Text - deltas.push(TextDelta::Inserted(" on ".to_string(), None)); - - // Date mention with reminder - deltas.push(build_mention_date_delta( - "2025-01-30T10:00:00Z", - Some("reminder_abc"), - Some("atTimeOfEvent"), - true, - )); - - // Text - deltas.push(TextDelta::Inserted(". Link: ".to_string(), None)); - - // External link mention - deltas.push(build_mention_external_link_delta("https://appflowy.io")); + let deltas = vec![ + // Regular text + TextDelta::Inserted("Hello ".to_string(), None), + // Person mention + build_mention_person_delta("person_123", "Alice", &page_id, Some(&block_id), None), + // More text + TextDelta::Inserted("! Check ".to_string(), None), + // Page mention + build_mention_page_delta(MentionPageType::Page, "page_456", Some("block_789"), None), + // Text + TextDelta::Inserted(" and ".to_string(), None), + // Child page mention + build_mention_page_delta(MentionPageType::ChildPage, "child_page_999", None, None), + // Text + TextDelta::Inserted(" on ".to_string(), None), + // Date mention with reminder + build_mention_date_delta( + "2025-01-30T10:00:00Z", + Some("reminder_abc"), + Some("atTimeOfEvent"), + true, + ), + // Text + TextDelta::Inserted(". Link: ".to_string(), None), + // External link mention + build_mention_external_link_delta("https://appflowy.io"), + ]; // Apply deltas to document let delta_json = serde_json::to_string(&deltas).unwrap(); @@ -307,7 +282,7 @@ fn test_mention_data_enum() { date, include_time, .. }) => { assert_eq!(date, "2025-01-30T10:00:00Z"); - assert_eq!(include_time, false); + assert!(!include_time); }, _ => panic!("Expected Date mention data"), } @@ -334,7 +309,7 @@ fn test_date_without_time() { reminder_option, }) => { assert_eq!(date, "2025-01-30T00:00:00Z"); - assert_eq!(include_time, false); + assert!(!include_time); assert_eq!(reminder_id, None); assert_eq!(reminder_option, None); }, diff --git a/collab/tests/document/main.rs b/collab/tests/document/main.rs index 0c2128c14..59926ed7d 100644 --- a/collab/tests/document/main.rs +++ b/collab/tests/document/main.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - mod block_parser; mod blocks; mod conversions; diff --git a/collab/tests/folder/main.rs b/collab/tests/folder/main.rs index 6a3fb7e9b..7e9182b88 100644 --- a/collab/tests/folder/main.rs +++ b/collab/tests/folder/main.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - mod child_views_test; mod custom_section; mod favorite_test; diff --git a/collab/tests/plugins/disk/delete_test.rs b/collab/tests/plugins/disk/delete_test.rs index 21d4d94cd..7bff9ebcb 100644 --- a/collab/tests/plugins/disk/delete_test.rs +++ b/collab/tests/plugins/disk/delete_test.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use crate::disk::script::CollabPersistenceTest; use collab::plugins::local_storage::CollabPersistenceConfig; diff --git a/collab/tests/plugins/disk/insert_test.rs b/collab/tests/plugins/disk/insert_test.rs index 6d460e3ed..d215df67f 100644 --- a/collab/tests/plugins/disk/insert_test.rs +++ b/collab/tests/plugins/disk/insert_test.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use crate::disk::script::{CollabPersistenceTest, disk_plugin_with_db}; use assert_json_diff::assert_json_eq; use uuid::Uuid; diff --git a/collab/tests/plugins/disk/range_test.rs b/collab/tests/plugins/disk/range_test.rs index f88009604..28f1d4d0d 100644 --- a/collab/tests/plugins/disk/range_test.rs +++ b/collab/tests/plugins/disk/range_test.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use std::ops::{Deref, Range, RangeTo}; use std::sync::Arc; use std::thread; diff --git a/collab/tests/plugins/disk/restore_test.rs b/collab/tests/plugins/disk/restore_test.rs index d4d05e0ba..e9daefd64 100644 --- a/collab/tests/plugins/disk/restore_test.rs +++ b/collab/tests/plugins/disk/restore_test.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use crate::disk::util::rocks_db; use collab::plugins::CollabKVDB; use collab::plugins::local_storage::kv::doc::{ diff --git a/collab/tests/plugins/disk/script.rs b/collab/tests/plugins/disk/script.rs index 40e3dea42..76cdeaff5 100644 --- a/collab/tests/plugins/disk/script.rs +++ b/collab/tests/plugins/disk/script.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use std::collections::HashMap; use std::path::PathBuf; use std::sync::Arc; diff --git a/collab/tests/plugins/disk/undo_test.rs b/collab/tests/plugins/disk/undo_test.rs index 048c45be9..6eb25a186 100644 --- a/collab/tests/plugins/disk/undo_test.rs +++ b/collab/tests/plugins/disk/undo_test.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use crate::disk::script::CollabPersistenceTest; use collab::plugins::local_storage::CollabPersistenceConfig; use serde_json::json; diff --git a/collab/tests/plugins/disk/util.rs b/collab/tests/plugins/disk/util.rs index 94215f518..bfb6c34ca 100644 --- a/collab/tests/plugins/disk/util.rs +++ b/collab/tests/plugins/disk/util.rs @@ -1,5 +1,3 @@ -#![cfg(feature = "plugins")] - use std::path::PathBuf; use collab::plugins::CollabKVDB; diff --git a/collab/tests/plugins/main.rs b/collab/tests/plugins/main.rs index a98cc1b85..7c09ba65e 100644 --- a/collab/tests/plugins/main.rs +++ b/collab/tests/plugins/main.rs @@ -1,6 +1,3 @@ -#![cfg(feature = "plugins")] - -#[cfg(feature = "plugins")] mod disk; pub fn setup_log() { diff --git a/collab/tests/user/main.rs b/collab/tests/user/main.rs index 8bc5bd704..46078b37a 100644 --- a/collab/tests/user/main.rs +++ b/collab/tests/user/main.rs @@ -1,4 +1,2 @@ -#![cfg(feature = "plugins")] - mod reminder_test; mod util;