Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions collab/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"] }
Expand All @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions collab/tests/database/database_test/view_observe_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand All @@ -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;
Expand Down
10 changes: 5 additions & 5 deletions collab/tests/database/database_test/view_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down Expand Up @@ -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())
Expand All @@ -233,15 +233,15 @@ 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();
let duplicated_view = database_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));
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/database/main.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

pub mod database_test;
pub mod helper;
pub mod remapper;
Expand Down
12 changes: 6 additions & 6 deletions collab/tests/database/user_test/database_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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);
}

Expand Down
3 changes: 1 addition & 2 deletions collab/tests/document/block_parser/ai_meeting_test.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
83 changes: 29 additions & 54 deletions collab/tests/document/blocks/mention_integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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"),
}
Expand All @@ -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);
},
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/document/main.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

mod block_parser;
mod blocks;
mod conversions;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/folder/main.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

mod child_views_test;
mod custom_section;
mod favorite_test;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/delete_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use crate::disk::script::CollabPersistenceTest;
use collab::plugins::local_storage::CollabPersistenceConfig;

Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/insert_test.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/range_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use std::ops::{Deref, Range, RangeTo};
use std::sync::Arc;
use std::thread;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/restore_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use crate::disk::util::rocks_db;
use collab::plugins::CollabKVDB;
use collab::plugins::local_storage::kv::doc::{
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/script.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use std::collections::HashMap;
use std::path::PathBuf;
use std::sync::Arc;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/undo_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use crate::disk::script::CollabPersistenceTest;
use collab::plugins::local_storage::CollabPersistenceConfig;
use serde_json::json;
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/plugins/disk/util.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(feature = "plugins")]

use std::path::PathBuf;

use collab::plugins::CollabKVDB;
Expand Down
3 changes: 0 additions & 3 deletions collab/tests/plugins/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
#![cfg(feature = "plugins")]

#[cfg(feature = "plugins")]
mod disk;

pub fn setup_log() {
Expand Down
2 changes: 0 additions & 2 deletions collab/tests/user/main.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
#![cfg(feature = "plugins")]

mod reminder_test;
mod util;
Loading