mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
136 lines
3.4 KiB
Rust
136 lines
3.4 KiB
Rust
|
use lib_ot::core::{Changeset, NodeOperation};
|
||
|
|
||
|
#[test]
|
||
|
fn operation_insert_compose_delta_update_test() {
|
||
|
let insert_operation = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
|
||
|
let update_operation = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Delta {
|
||
|
delta: Default::default(),
|
||
|
inverted: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(insert_operation.can_compose(&update_operation))
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn operation_insert_compose_attribute_update_test() {
|
||
|
let insert_operation = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
|
||
|
let update_operation = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(!insert_operation.can_compose(&update_operation))
|
||
|
}
|
||
|
#[test]
|
||
|
fn operation_insert_compose_update_with_diff_path_test() {
|
||
|
let insert_operation = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
|
||
|
let update_operation = NodeOperation::Update {
|
||
|
path: 1.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(!insert_operation.can_compose(&update_operation))
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn operation_insert_compose_insert_operation_test() {
|
||
|
let insert_operation = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
|
||
|
assert!(!insert_operation.can_compose(&NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
}),)
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn operation_update_compose_insert_operation_test() {
|
||
|
let update_operation = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(!update_operation.can_compose(&NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
}))
|
||
|
}
|
||
|
#[test]
|
||
|
fn operation_update_compose_update_test() {
|
||
|
let update_operation_1 = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
let update_operation_2 = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(update_operation_1.can_compose(&update_operation_2));
|
||
|
}
|
||
|
#[test]
|
||
|
fn operation_update_compose_update_with_diff_path_test() {
|
||
|
let update_operation_1 = NodeOperation::Update {
|
||
|
path: 0.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
let update_operation_2 = NodeOperation::Update {
|
||
|
path: 1.into(),
|
||
|
changeset: Changeset::Attributes {
|
||
|
new: Default::default(),
|
||
|
old: Default::default(),
|
||
|
},
|
||
|
};
|
||
|
|
||
|
assert!(!update_operation_1.can_compose(&update_operation_2));
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn operation_insert_compose_insert_test() {
|
||
|
let insert_operation_1 = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
let insert_operation_2 = NodeOperation::Insert {
|
||
|
path: 0.into(),
|
||
|
nodes: vec![],
|
||
|
};
|
||
|
|
||
|
assert!(!insert_operation_1.can_compose(&insert_operation_2));
|
||
|
}
|