Skip to content

Commit 2d96fe2

Browse files
committed
test: update loro-crdt
1 parent 46413d5 commit 2d96fe2

12 files changed

+103
-53
lines changed

01_basic.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro, LoroList, LoroMap, LoroText } from "npm:loro-crdt@0.15.0"
1+
import { Loro, LoroList, LoroMap, LoroText } from "npm:loro-crdt@0.16.4-alpha.0"
22
import { expect } from "npm:[email protected]"
33

44
Deno.test("Basic usage", () => {
@@ -15,14 +15,14 @@ Deno.test("Basic usage", () => {
1515
const map: LoroMap = doc.getMap("map");
1616
// map can only has string key
1717
map.set("key", "value");
18-
expect(doc.toJson()).toStrictEqual({
18+
expect(doc.toJSON()).toStrictEqual({
1919
list: ["A", "B", "C"],
2020
map: { key: "value" }
2121
});
2222

2323
// delete 2 element at index 0
2424
list.delete(0, 2)
25-
expect(doc.toJson()).toStrictEqual({
25+
expect(doc.toJSON()).toStrictEqual({
2626
list: ["C"],
2727
map: { key: "value" }
2828
});
@@ -39,11 +39,11 @@ Deno.test("Sub containers", () => {
3939
// insert a List container at index 0, and get the handler to that list
4040
const subList = list.insertContainer(0, new LoroList());
4141
subList.insert(0, "A");
42-
expect(list.toJson()).toStrictEqual([["A"]]);
42+
expect(list.toJSON()).toStrictEqual([["A"]]);
4343
// create a Text container inside the Map container
4444
const subtext = map.setContainer("text", new LoroText());
4545
subtext.insert(0, "Hi");
46-
expect(map.toJson()).toStrictEqual({ text: "Hi" });
46+
expect(map.toJSON()).toStrictEqual({ text: "Hi" });
4747
});
4848

4949
Deno.test("Sync", () => {
@@ -58,7 +58,7 @@ Deno.test("Sync", () => {
5858
listA.insert(2, "C");
5959
// B import the ops from A
6060
docB.import(docA.exportFrom());
61-
expect(docB.toJson()).toStrictEqual({
61+
expect(docB.toJSON()).toStrictEqual({
6262
list: ["A", "B", "C"]
6363
})
6464

@@ -68,8 +68,8 @@ Deno.test("Sync", () => {
6868
// A import the missing ops from B
6969
docA.import(docB.exportFrom(docA.version()))
7070
// list at A is now ["A", "C"], with the same state as B
71-
expect(docA.toJson()).toStrictEqual({
71+
expect(docA.toJSON()).toStrictEqual({
7272
list: ["A", "C"]
7373
});
74-
expect(docA.toJson()).toStrictEqual(docB.toJson());
74+
expect(docA.toJSON()).toStrictEqual(docB.toJSON());
7575
})

02_text.test.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
import { Delta, Loro } from "npm:[email protected].0";
1+
import { Delta, Loro } from "npm:[email protected].2";
22
import { expect } from "npm:[email protected]";
33

4+
Deno.test("Long text", () => {
5+
/**
6+
* Loro supports text manipulation.
7+
*/
8+
const doc = new Loro();
9+
const text = doc.getText("text");
10+
for (let i = 0; i < 1_000_000; i += 1) {
11+
text.insert(i, i.toString())
12+
}
13+
doc.exportFrom();
14+
doc.exportSnapshot();
15+
});
16+
417
Deno.test("Text", () => {
518
/**
619
* Loro supports text manipulation.

03_version.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro, OpId } from "npm:loro-crdt@0.15.0";
1+
import { Loro, OpId } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44

04_time_travel.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro } from "npm:loro-crdt@0.15.0";
1+
import { Loro } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("Time Travel", () => {
@@ -11,24 +11,24 @@ Deno.test("Time Travel", () => {
1111
text.insert(0, "Hello");
1212
doc.commit();
1313
text.insert(5, " world");
14-
expect(doc.toJson()).toStrictEqual({
14+
expect(doc.toJSON()).toStrictEqual({
1515
text: "Hello world"
1616
});
1717

1818
// Every unicode char insertion is a single operation for Text container
1919
doc.checkout([{ peer: "0", counter: 0 }]);
20-
expect(doc.toJson()).toStrictEqual({
20+
expect(doc.toJSON()).toStrictEqual({
2121
text: "H"
2222
});
2323

2424
doc.checkout([{ peer: "0", counter: 4 }]);
25-
expect(doc.toJson()).toStrictEqual({
25+
expect(doc.toJSON()).toStrictEqual({
2626
text: "Hello"
2727
});
2828

2929
// Returns to the latest version
3030
doc.attach();
31-
expect(doc.toJson()).toStrictEqual({
31+
expect(doc.toJSON()).toStrictEqual({
3232
text: "Hello world"
3333
});
3434
})

05_save_and_load.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro } from "npm:loro-crdt@0.15.0";
1+
import { Loro } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("Save and load", () => {
@@ -10,7 +10,7 @@ Deno.test("Save and load", () => {
1010

1111
const newDoc = new Loro();
1212
newDoc.import(data);
13-
expect(newDoc.toJson()).toStrictEqual({
13+
expect(newDoc.toJSON()).toStrictEqual({
1414
text: "Hello world!"
1515
});
1616
})
@@ -37,19 +37,19 @@ Deno.test("Save and load incrementally", () => {
3737
// import the snapshot
3838
const newDoc = new Loro();
3939
newDoc.import(data);
40-
expect(newDoc.toJson()).toStrictEqual({
40+
expect(newDoc.toJSON()).toStrictEqual({
4141
text: "Hello world!"
4242
});
4343

4444
// import update0
4545
newDoc.import(update0)
46-
expect(newDoc.toJson()).toStrictEqual({
46+
expect(newDoc.toJSON()).toStrictEqual({
4747
text: "✨Hello world!"
4848
});
4949

5050
// import update1
5151
newDoc.import(update1)
52-
expect(newDoc.toJson()).toStrictEqual({
52+
expect(newDoc.toJSON()).toStrictEqual({
5353
text: "😶‍🌫️✨Hello world!"
5454
});
5555
}
@@ -60,7 +60,7 @@ Deno.test("Save and load incrementally", () => {
6060
*/
6161
const newDoc = new Loro();
6262
newDoc.importUpdateBatch([update1, update0, data])
63-
expect(newDoc.toJson()).toStrictEqual({
63+
expect(newDoc.toJSON()).toStrictEqual({
6464
text: "😶‍🌫️✨Hello world!"
6565
});
6666
}

06_event.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro, LoroMap, LoroText, getType } from "npm:loro-crdt@0.15.0";
1+
import { Loro, LoroMap, LoroText, getType } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("Event have delta that contains Container", async () => {

07_list.test.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Cursor, Loro } from "npm:loro-crdt@0.15.0";
1+
import { Cursor, Loro } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("List", () => {
@@ -17,15 +17,15 @@ Deno.test("List", () => {
1717
// Concurrently docA and docB update element at index 2
1818
// docA updates it to 8
1919
// docB updates it to 9
20-
// docA.toJson() should return { list: [0, 1, 8] }
21-
// docB.toJson() should return { list: [0, 1, 9] }
20+
// docA.toJSON() should return { list: [0, 1, 8] }
21+
// docB.toJSON() should return { list: [0, 1, 9] }
2222

2323
listB.delete(2, 1);
2424
listB.insert(2, 9);
25-
expect(docB.toJson()).toStrictEqual({ list: [0, 1, 9] });
25+
expect(docB.toJSON()).toStrictEqual({ list: [0, 1, 9] });
2626
listA.delete(2, 1);
2727
listA.insert(2, 8);
28-
expect(docA.toJson()).toStrictEqual({ list: [0, 1, 8] });
28+
expect(docA.toJSON()).toStrictEqual({ list: [0, 1, 8] });
2929
}
3030

3131
{
@@ -34,8 +34,8 @@ Deno.test("List", () => {
3434
docB.import(docA.exportFrom(docB.version()));
3535
}
3636

37-
expect(docA.toJson()).toStrictEqual({ list: [0, 1, 8, 9] });
38-
expect(docB.toJson()).toStrictEqual({ list: [0, 1, 8, 9] });
37+
expect(docA.toJSON()).toStrictEqual({ list: [0, 1, 8, 9] });
38+
expect(docB.toJSON()).toStrictEqual({ list: [0, 1, 8, 9] });
3939
})
4040

4141
Deno.test("MovableList", () => {
@@ -54,13 +54,13 @@ Deno.test("MovableList", () => {
5454
// Concurrently docA and docB update element at index 2
5555
// docA updates it to 8
5656
// docB updates it to 9
57-
// docA.toJson() should return { list: [0, 1, 8] }
58-
// docB.toJson() should return { list: [0, 1, 9] }
57+
// docA.toJSON() should return { list: [0, 1, 8] }
58+
// docB.toJSON() should return { list: [0, 1, 9] }
5959

6060
listA.set(2, 8);
61-
expect(docA.toJson()).toStrictEqual({ list: [0, 1, 8] });
61+
expect(docA.toJSON()).toStrictEqual({ list: [0, 1, 8] });
6262
listB.set(2, 9);
63-
expect(docB.toJson()).toStrictEqual({ list: [0, 1, 9] });
63+
expect(docB.toJSON()).toStrictEqual({ list: [0, 1, 9] });
6464
}
6565

6666
{
@@ -70,20 +70,20 @@ Deno.test("MovableList", () => {
7070
}
7171

7272
// Converge to [0, 1, 9] because docB has larger peerId thus larger logical time
73-
expect(docA.toJson()).toStrictEqual({ list: [0, 1, 9] });
74-
expect(docB.toJson()).toStrictEqual({ list: [0, 1, 9] });
73+
expect(docA.toJSON()).toStrictEqual({ list: [0, 1, 9] });
74+
expect(docB.toJSON()).toStrictEqual({ list: [0, 1, 9] });
7575

7676
{
7777
// Concurrently docA and docB move element at index 0
7878
// docA moves it to 2
7979
// docB moves it to 1
80-
// docA.toJson() should return { list: [1, 9, 0] }
81-
// docB.toJson() should return { list: [1, 0, 9] }
80+
// docA.toJSON() should return { list: [1, 9, 0] }
81+
// docB.toJSON() should return { list: [1, 0, 9] }
8282

8383
listA.move(0, 2);
8484
listB.move(0, 1);
85-
expect(docA.toJson()).toStrictEqual({ list: [1, 9, 0] });
86-
expect(docB.toJson()).toStrictEqual({ list: [1, 0, 9] });
85+
expect(docA.toJSON()).toStrictEqual({ list: [1, 9, 0] });
86+
expect(docB.toJSON()).toStrictEqual({ list: [1, 0, 9] });
8787
}
8888

8989
{
@@ -93,8 +93,8 @@ Deno.test("MovableList", () => {
9393
}
9494

9595
// Converge to [1, 0, 9] because docB has larger peerId thus larger logical time
96-
expect(docA.toJson()).toStrictEqual({ list: [1, 0, 9] });
97-
expect(docB.toJson()).toStrictEqual({ list: [1, 0, 9] });
96+
expect(docA.toJSON()).toStrictEqual({ list: [1, 0, 9] });
97+
expect(docB.toJSON()).toStrictEqual({ list: [1, 0, 9] });
9898
})
9999

100100

@@ -119,22 +119,22 @@ Deno.test("List Cursors", () => {
119119
const listB = docB.getList("list");
120120
docB.import(exported);
121121
listB.insert(0, "Foo");
122-
expect(docB.toJson()).toStrictEqual({ list: ["Foo", "Hello", "World"] });
122+
expect(docB.toJSON()).toStrictEqual({ list: ["Foo", "Hello", "World"] });
123123
const cursorB = Cursor.decode(encodedCursor);
124124
{
125125
// The cursor position is shifted to the right by 1
126126
const pos = docB.getCursorPos(cursorB);
127127
expect(pos.offset).toBe(2);
128128
}
129129
listB.insert(1, "Bar");
130-
expect(docB.toJson()).toStrictEqual({ list: ["Foo", "Bar", "Hello", "World"] });
130+
expect(docB.toJSON()).toStrictEqual({ list: ["Foo", "Bar", "Hello", "World"] });
131131
{
132132
// The cursor position is shifted to the right by 1
133133
const pos = docB.getCursorPos(cursorB);
134134
expect(pos.offset).toBe(3);
135135
}
136136
listB.delete(3, 1);
137-
expect(docB.toJson()).toStrictEqual({ list: ["Foo", "Bar", "Hello"] });
137+
expect(docB.toJSON()).toStrictEqual({ list: ["Foo", "Bar", "Hello"] });
138138
{
139139
// The position cursor points to is now deleted,
140140
// but it should still get the position

08_map.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro, LoroText } from "npm:loro-crdt@0.15.0";
1+
import { Loro, LoroText } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("LoroMap", () => {
@@ -14,13 +14,13 @@ Deno.test("LoroMap", () => {
1414
const textB = mapB.setContainer("a", new LoroText());
1515
textB.insert(0, "Hi");
1616

17-
expect(docA.toJson()).toStrictEqual({ map: { a: 1 } });
18-
expect(docB.toJson()).toStrictEqual({ map: { a: "Hi" } });
17+
expect(docA.toJSON()).toStrictEqual({ map: { a: 1 } });
18+
expect(docB.toJSON()).toStrictEqual({ map: { a: "Hi" } });
1919

2020
docA.import(docB.exportSnapshot());
2121
docB.import(docA.exportSnapshot());
2222

23-
expect(docA.toJson()).toStrictEqual({ map: { a: "Hi" } });
24-
expect(docB.toJson()).toStrictEqual({ map: { a: "Hi" } });
23+
expect(docA.toJSON()).toStrictEqual({ map: { a: "Hi" } });
24+
expect(docB.toJSON()).toStrictEqual({ map: { a: "Hi" } });
2525
});
2626

09_composition.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Loro, LoroList, LoroText } from "npm:loro-crdt@0.15.0";
1+
import { Loro, LoroList, LoroText } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("Composition", async () => {
@@ -18,7 +18,7 @@ Deno.test("Composition", async () => {
1818
// Create a sub container for list
1919
// { map: { list: [0, 1, LoroText] } }
2020
const text = list.insertContainer(2, new LoroText());
21-
expect(doc.toJson()).toStrictEqual({ map: { list: [0, 1, ""] } });
21+
expect(doc.toJSON()).toStrictEqual({ map: { list: [0, 1, ""] } });
2222
{
2323
// Commit will trigger the event, because list is a sub container of map
2424
doc.commit();
@@ -28,7 +28,7 @@ Deno.test("Composition", async () => {
2828

2929
text.insert(0, "Hello, ");
3030
text.insert(7, "World!");
31-
expect(doc.toJson()).toStrictEqual({ map: { list: [0, 1, "Hello, World!"] } });
31+
expect(doc.toJSON()).toStrictEqual({ map: { list: [0, 1, "Hello, World!"] } });
3232
{
3333
// Commit will trigger the event, because text is a descendant of map
3434
doc.commit();

10_op_and_change.ts renamed to 10_op_and_change.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Change, Loro, LoroList, LoroText } from "npm:loro-crdt@0.15.0";
1+
import { Change, Loro, LoroList, LoroText } from "npm:loro-crdt@0.16.4-alpha.0";
22
import { expect } from "npm:[email protected]";
33

44
Deno.test("op and change", () => {

0 commit comments

Comments
 (0)