loro/loro-js/tests/frontiers.test.ts

35 lines
942 B
TypeScript
Raw Normal View History

import { describe, expect, it } from "vitest";
import {
Loro,
2023-07-28 18:03:51 +00:00
setPanicHook,
} from "../src";
2023-07-28 18:03:51 +00:00
setPanicHook();
describe("Frontiers", () => {
it("two clients", () => {
const doc = new Loro();
const text = doc.getText("text");
const txn = doc.newTransaction("");
2023-07-28 18:03:51 +00:00
text.insert(txn, 0, "0");
txn.commit();
const v0 = doc.frontiers();
const docB = new Loro();
docB.import(doc.exportFrom());
expect(docB.cmpFrontiers(v0)).toBe(0);
2023-07-28 18:03:51 +00:00
doc.transact((t) => {
text.insert(t, 1, "0");
});
expect(docB.cmpFrontiers(doc.frontiers())).toBe(-1);
const textB = docB.getText("text");
2023-07-28 18:03:51 +00:00
docB.transact((t) => {
textB.insert(t, 0, "0");
});
expect(docB.cmpFrontiers(doc.frontiers())).toBe(-1);
docB.import(doc.exportFrom());
expect(docB.cmpFrontiers(doc.frontiers())).toBe(1);
doc.import(docB.exportFrom());
expect(docB.cmpFrontiers(doc.frontiers())).toBe(0);
});
});