mirror of
https://github.com/loro-dev/loro.git
synced 2025-02-02 11:06:14 +00:00
fix: import batch snapshot (#268)
This commit is contained in:
parent
f648b353ad
commit
73d5ec5cad
2 changed files with 17 additions and 1 deletions
|
@ -664,7 +664,8 @@ pub(crate) fn decode_snapshot(doc: &LoroDoc, bytes: &[u8]) -> LoroResult<()> {
|
|||
let changes = decode_changes(iter.changes, iter.start_counters, peer_ids, deps, ops_map)?;
|
||||
let (new_ids, pending_changes) = import_changes_to_oplog(changes, &mut oplog)?;
|
||||
assert!(pending_changes.is_empty());
|
||||
assert_eq!(&state.frontiers, oplog.frontiers());
|
||||
// we cannot assert this because frontiers of oplog is not updated yet when batch_importing
|
||||
// assert_eq!(&state.frontiers, oplog.frontiers());
|
||||
if !oplog.pending_changes.is_empty() {
|
||||
drop(oplog);
|
||||
drop(state);
|
||||
|
|
|
@ -776,3 +776,18 @@ fn tree_checkout() {
|
|||
})
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn issue_batch_import_snapshot() {
|
||||
let doc = LoroDoc::new_auto_commit();
|
||||
doc.set_peer_id(123).unwrap();
|
||||
let doc2 = LoroDoc::new_auto_commit();
|
||||
doc2.set_peer_id(456).unwrap();
|
||||
doc.get_map("map").insert("s", "hello world!").unwrap();
|
||||
doc2.get_map("map").insert("s", "hello?").unwrap();
|
||||
|
||||
let data1 = doc.export_snapshot();
|
||||
let data2 = doc2.export_snapshot();
|
||||
let doc3 = LoroDoc::new();
|
||||
doc3.import_batch(&[data1, data2]).unwrap();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue