cojson 0.13.13 → 0.13.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/PeerState.d.ts +4 -6
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/PeerState.js +30 -26
- package/dist/PeerState.js.map +1 -1
- package/dist/PriorityBasedMessageQueue.d.ts +2 -8
- package/dist/PriorityBasedMessageQueue.d.ts.map +1 -1
- package/dist/PriorityBasedMessageQueue.js +1 -17
- package/dist/PriorityBasedMessageQueue.js.map +1 -1
- package/dist/coValueCore.js +1 -1
- package/dist/coValueCore.js.map +1 -1
- package/dist/coValueState.d.ts.map +1 -1
- package/dist/coValueState.js +1 -8
- package/dist/coValueState.js.map +1 -1
- package/dist/coValues/coList.d.ts +2 -4
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coList.js +14 -18
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coPlainText.js +1 -1
- package/dist/coValues/coPlainText.js.map +1 -1
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +2 -2
- package/dist/localNode.js.map +1 -1
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +1 -1
- package/dist/streamUtils.js.map +1 -1
- package/dist/sync.d.ts +11 -17
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +49 -91
- package/dist/sync.js.map +1 -1
- package/dist/tests/PeerState.test.js +27 -14
- package/dist/tests/PeerState.test.js.map +1 -1
- package/dist/tests/PriorityBasedMessageQueue.test.js +5 -33
- package/dist/tests/PriorityBasedMessageQueue.test.js.map +1 -1
- package/dist/tests/SyncStateManager.test.js +5 -9
- package/dist/tests/SyncStateManager.test.js.map +1 -1
- package/dist/tests/coList.test.js +0 -9
- package/dist/tests/coList.test.js.map +1 -1
- package/dist/tests/sync.load.test.js +21 -17
- package/dist/tests/sync.load.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +46 -18
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/dist/tests/sync.peerReconciliation.test.js +13 -15
- package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
- package/dist/tests/sync.storage.test.js +13 -9
- package/dist/tests/sync.storage.test.js.map +1 -1
- package/dist/tests/sync.test.js +16 -28
- package/dist/tests/sync.test.js.map +1 -1
- package/dist/tests/sync.upload.test.js +13 -13
- package/dist/tests/testUtils.d.ts +1 -0
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +1 -0
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/PeerState.ts +33 -37
- package/src/PriorityBasedMessageQueue.ts +2 -30
- package/src/coValueCore.ts +1 -1
- package/src/coValueState.ts +4 -10
- package/src/coValues/coList.ts +20 -29
- package/src/coValues/coPlainText.ts +1 -1
- package/src/localNode.ts +4 -2
- package/src/streamUtils.ts +2 -2
- package/src/sync.ts +58 -103
- package/src/tests/PeerState.test.ts +28 -14
- package/src/tests/PriorityBasedMessageQueue.test.ts +5 -39
- package/src/tests/SyncStateManager.test.ts +4 -12
- package/src/tests/coList.test.ts +0 -13
- package/src/tests/sync.load.test.ts +21 -17
- package/src/tests/sync.mesh.test.ts +46 -18
- package/src/tests/sync.peerReconciliation.test.ts +13 -25
- package/src/tests/sync.storage.test.ts +13 -9
- package/src/tests/sync.test.ts +16 -30
- package/src/tests/sync.upload.test.ts +13 -13
- package/src/tests/testUtils.ts +1 -0
|
@@ -74,8 +74,8 @@ describe("loading coValues from server", () => {
|
|
|
74
74
|
"server -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
75
75
|
"client -> server | KNOWN ParentGroup sessions: header/6",
|
|
76
76
|
"server -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
77
|
-
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
78
77
|
"client -> server | KNOWN Group sessions: header/5",
|
|
78
|
+
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
79
79
|
"client -> server | KNOWN Map sessions: header/1",
|
|
80
80
|
]
|
|
81
81
|
`);
|
|
@@ -118,6 +118,8 @@ describe("loading coValues from server", () => {
|
|
|
118
118
|
"client -> server | LOAD Map sessions: header/1",
|
|
119
119
|
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
120
120
|
"client -> server | KNOWN Map sessions: header/2",
|
|
121
|
+
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
122
|
+
"client -> server | KNOWN Map sessions: header/2",
|
|
121
123
|
]
|
|
122
124
|
`);
|
|
123
125
|
});
|
|
@@ -161,9 +163,11 @@ describe("loading coValues from server", () => {
|
|
|
161
163
|
"server -> client | KNOWN Group sessions: header/5",
|
|
162
164
|
"client -> server | LOAD Map sessions: header/2",
|
|
163
165
|
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
164
|
-
"client -> server | KNOWN Map sessions: header/3",
|
|
165
166
|
"client -> server | CONTENT Map header: false new: After: 0 New: 1",
|
|
167
|
+
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
168
|
+
"client -> server | KNOWN Map sessions: header/3",
|
|
166
169
|
"server -> client | KNOWN Map sessions: header/3",
|
|
170
|
+
"client -> server | KNOWN Map sessions: header/3",
|
|
167
171
|
]
|
|
168
172
|
`);
|
|
169
173
|
});
|
|
@@ -288,36 +292,36 @@ describe("loading coValues from server", () => {
|
|
|
288
292
|
"server -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
289
293
|
"client -> server | KNOWN Group sessions: header/5",
|
|
290
294
|
"server -> client | CONTENT Map header: true new: ",
|
|
291
|
-
"server -> client | CONTENT Map header: false new: After: 0 New: 73",
|
|
292
295
|
"client -> server | KNOWN Map sessions: header/0",
|
|
293
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
294
|
-
"server -> client | CONTENT Map header: false new: After: 146 New: 73",
|
|
296
|
+
"server -> client | CONTENT Map header: false new: After: 0 New: 73",
|
|
295
297
|
"client -> server | KNOWN Map sessions: header/73",
|
|
296
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
297
|
-
"server -> client | CONTENT Map header: false new: After: 292 New: 73",
|
|
298
|
+
"server -> client | CONTENT Map header: false new: After: 73 New: 73",
|
|
298
299
|
"client -> server | KNOWN Map sessions: header/146",
|
|
299
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
300
|
-
"server -> client | CONTENT Map header: false new: After: 438 New: 73",
|
|
300
|
+
"server -> client | CONTENT Map header: false new: After: 146 New: 73",
|
|
301
301
|
"client -> server | KNOWN Map sessions: header/219",
|
|
302
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
303
|
-
"server -> client | CONTENT Map header: false new: After: 584 New: 73",
|
|
302
|
+
"server -> client | CONTENT Map header: false new: After: 219 New: 73",
|
|
304
303
|
"client -> server | KNOWN Map sessions: header/292",
|
|
305
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
306
|
-
"server -> client | CONTENT Map header: false new: After: 730 New: 73",
|
|
304
|
+
"server -> client | CONTENT Map header: false new: After: 292 New: 73",
|
|
307
305
|
"client -> server | KNOWN Map sessions: header/365",
|
|
308
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
309
|
-
"server -> client | CONTENT Map header: false new: After: 876 New: 73",
|
|
306
|
+
"server -> client | CONTENT Map header: false new: After: 365 New: 73",
|
|
310
307
|
"client -> server | KNOWN Map sessions: header/438",
|
|
311
|
-
"server -> client | CONTENT Map header: false new: After:
|
|
312
|
-
"server -> client | CONTENT Map header: false new: After: 1022 New: 2",
|
|
308
|
+
"server -> client | CONTENT Map header: false new: After: 438 New: 73",
|
|
313
309
|
"client -> server | KNOWN Map sessions: header/511",
|
|
310
|
+
"server -> client | CONTENT Map header: false new: After: 511 New: 73",
|
|
314
311
|
"client -> server | KNOWN Map sessions: header/584",
|
|
312
|
+
"server -> client | CONTENT Map header: false new: After: 584 New: 73",
|
|
315
313
|
"client -> server | KNOWN Map sessions: header/657",
|
|
314
|
+
"server -> client | CONTENT Map header: false new: After: 657 New: 73",
|
|
316
315
|
"client -> server | KNOWN Map sessions: header/730",
|
|
316
|
+
"server -> client | CONTENT Map header: false new: After: 730 New: 73",
|
|
317
317
|
"client -> server | KNOWN Map sessions: header/803",
|
|
318
|
+
"server -> client | CONTENT Map header: false new: After: 803 New: 73",
|
|
318
319
|
"client -> server | KNOWN Map sessions: header/876",
|
|
320
|
+
"server -> client | CONTENT Map header: false new: After: 876 New: 73",
|
|
319
321
|
"client -> server | KNOWN Map sessions: header/949",
|
|
322
|
+
"server -> client | CONTENT Map header: false new: After: 949 New: 73",
|
|
320
323
|
"client -> server | KNOWN Map sessions: header/1022",
|
|
324
|
+
"server -> client | CONTENT Map header: false new: After: 1022 New: 2",
|
|
321
325
|
"client -> server | KNOWN Map sessions: header/1024",
|
|
322
326
|
]
|
|
323
327
|
`);
|
|
@@ -66,10 +66,10 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
66
66
|
[
|
|
67
67
|
"edge-france -> core | CONTENT Group header: true new: After: 0 New: 3",
|
|
68
68
|
"core -> edge-france | KNOWN Group sessions: header/3",
|
|
69
|
-
"core -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
70
69
|
"edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
|
|
71
|
-
"
|
|
70
|
+
"core -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
72
71
|
"core -> edge-france | KNOWN Map sessions: header/1",
|
|
72
|
+
"storage -> core | KNOWN Group sessions: header/3",
|
|
73
73
|
"core -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
74
74
|
"storage -> core | KNOWN Map sessions: header/1",
|
|
75
75
|
"client -> edge-italy | LOAD Map sessions: empty",
|
|
@@ -77,17 +77,16 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
77
77
|
"core -> edge-italy | CONTENT Group header: true new: After: 0 New: 3",
|
|
78
78
|
"edge-italy -> core | KNOWN Group sessions: header/3",
|
|
79
79
|
"core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
|
|
80
|
+
"edge-italy -> core | KNOWN Map sessions: header/1",
|
|
80
81
|
"edge-italy -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
81
82
|
"client -> edge-italy | KNOWN Group sessions: header/3",
|
|
82
|
-
"edge-italy -> core | KNOWN Map sessions: header/1",
|
|
83
83
|
"edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
84
84
|
"client -> edge-italy | KNOWN Map sessions: header/1",
|
|
85
85
|
]
|
|
86
86
|
`);
|
|
87
87
|
});
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
test.skip("coValue created on a different edge with parent groups loading", async () => {
|
|
89
|
+
test("coValue created on a different edge with parent groups loading", async () => {
|
|
91
90
|
const client = setupTestNode();
|
|
92
91
|
|
|
93
92
|
client.connectToSyncServer({
|
|
@@ -96,7 +95,7 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
96
95
|
});
|
|
97
96
|
|
|
98
97
|
const group = mesh.edgeFrance.node.createGroup();
|
|
99
|
-
const parentGroup = mesh.
|
|
98
|
+
const parentGroup = mesh.edgeFrance.node.createGroup();
|
|
100
99
|
parentGroup.addMember("everyone", "reader");
|
|
101
100
|
|
|
102
101
|
group.extend(parentGroup);
|
|
@@ -115,7 +114,36 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
115
114
|
Group: group.core,
|
|
116
115
|
Map: map.core,
|
|
117
116
|
}),
|
|
118
|
-
).toMatchInlineSnapshot(
|
|
117
|
+
).toMatchInlineSnapshot(`
|
|
118
|
+
[
|
|
119
|
+
"edge-france -> core | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
120
|
+
"core -> edge-france | KNOWN ParentGroup sessions: header/6",
|
|
121
|
+
"edge-france -> core | CONTENT Group header: true new: After: 0 New: 5",
|
|
122
|
+
"core -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
123
|
+
"core -> edge-france | KNOWN Group sessions: header/5",
|
|
124
|
+
"edge-france -> core | CONTENT Map header: true new: After: 0 New: 1",
|
|
125
|
+
"storage -> core | KNOWN ParentGroup sessions: header/6",
|
|
126
|
+
"core -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
127
|
+
"core -> edge-france | KNOWN Map sessions: header/1",
|
|
128
|
+
"storage -> core | KNOWN Group sessions: header/5",
|
|
129
|
+
"core -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
130
|
+
"storage -> core | KNOWN Map sessions: header/1",
|
|
131
|
+
"client -> edge-italy | LOAD Map sessions: empty",
|
|
132
|
+
"edge-italy -> core | LOAD Map sessions: empty",
|
|
133
|
+
"core -> edge-italy | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
134
|
+
"edge-italy -> core | KNOWN ParentGroup sessions: header/6",
|
|
135
|
+
"core -> edge-italy | CONTENT Group header: true new: After: 0 New: 5",
|
|
136
|
+
"edge-italy -> core | KNOWN Group sessions: header/5",
|
|
137
|
+
"core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1",
|
|
138
|
+
"edge-italy -> core | KNOWN Map sessions: header/1",
|
|
139
|
+
"edge-italy -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
140
|
+
"client -> edge-italy | KNOWN ParentGroup sessions: header/6",
|
|
141
|
+
"edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
142
|
+
"client -> edge-italy | KNOWN Group sessions: header/5",
|
|
143
|
+
"edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
144
|
+
"client -> edge-italy | KNOWN Map sessions: header/1",
|
|
145
|
+
]
|
|
146
|
+
`);
|
|
119
147
|
});
|
|
120
148
|
|
|
121
149
|
test("updating a coValue coming from a different edge", async () => {
|
|
@@ -155,8 +183,8 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
155
183
|
"edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
|
|
156
184
|
"core -> edge-italy | KNOWN Map sessions: header/2",
|
|
157
185
|
"core -> storage | CONTENT Map header: false new: After: 0 New: 1",
|
|
158
|
-
"storage -> core | KNOWN Map sessions: header/2",
|
|
159
186
|
"core -> edge-france | CONTENT Map header: false new: After: 0 New: 1",
|
|
187
|
+
"storage -> core | KNOWN Map sessions: header/2",
|
|
160
188
|
"edge-france -> core | KNOWN Map sessions: header/2",
|
|
161
189
|
]
|
|
162
190
|
`);
|
|
@@ -210,29 +238,29 @@ describe("multiple clients syncing with the a cloud-like server mesh", () => {
|
|
|
210
238
|
"edge-italy -> core | CONTENT Group header: true new: After: 0 New: 5",
|
|
211
239
|
"edge-italy -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
212
240
|
"core -> edge-italy | KNOWN Group sessions: header/5",
|
|
213
|
-
"client -> edge-italy | KNOWN Group sessions: header/5",
|
|
214
|
-
"core -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
215
241
|
"edge-italy -> core | CONTENT Map header: true new: After: 0 New: 1",
|
|
242
|
+
"client -> edge-italy | KNOWN Group sessions: header/5",
|
|
216
243
|
"edge-italy -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
217
|
-
"
|
|
244
|
+
"core -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
218
245
|
"core -> edge-italy | KNOWN Map sessions: header/1",
|
|
219
|
-
"core -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
220
246
|
"client -> edge-italy | KNOWN Map sessions: header/1",
|
|
247
|
+
"storage -> core | KNOWN Group sessions: header/5",
|
|
248
|
+
"core -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
221
249
|
"storage -> core | KNOWN Map sessions: header/1",
|
|
222
250
|
"client -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
|
|
223
251
|
"core -> storage | CONTENT Map header: false new: After: 0 New: 1",
|
|
252
|
+
"core -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
|
|
224
253
|
"edge-italy -> client | KNOWN CORRECTION Map sessions: empty",
|
|
225
254
|
"storage -> core | KNOWN Map sessions: header/2",
|
|
226
|
-
"core -> edge-italy | CONTENT Map header: false new: After: 0 New: 1",
|
|
227
|
-
"client -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
|
|
228
255
|
"edge-italy -> core | KNOWN CORRECTION Map sessions: empty",
|
|
229
|
-
"edge-italy
|
|
256
|
+
"client -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
|
|
230
257
|
"core -> edge-italy | CONTENT Map header: true new: After: 0 New: 1 | After: 0 New: 1",
|
|
231
|
-
"edge-italy ->
|
|
232
|
-
"edge-italy -> client | CONTENT Map header: false new: After: 0 New: 1",
|
|
233
|
-
"core -> edge-italy | KNOWN Map sessions: header/3",
|
|
258
|
+
"edge-italy -> client | KNOWN Map sessions: header/2",
|
|
234
259
|
"edge-italy -> core | KNOWN Map sessions: header/3",
|
|
260
|
+
"edge-italy -> client | CONTENT Map header: false new: After: 0 New: 1",
|
|
261
|
+
"edge-italy -> core | CONTENT Map header: false new: After: 0 New: 1",
|
|
235
262
|
"client -> edge-italy | KNOWN Map sessions: header/3",
|
|
263
|
+
"core -> edge-italy | KNOWN Map sessions: header/3",
|
|
236
264
|
"core -> storage | CONTENT Map header: false new: After: 0 New: 1",
|
|
237
265
|
"storage -> core | KNOWN Map sessions: header/3",
|
|
238
266
|
]
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
import { assert, beforeEach, describe, expect, test } from "vitest";
|
|
2
2
|
import { expectMap } from "../coValue";
|
|
3
3
|
import { WasmCrypto } from "../crypto/WasmCrypto";
|
|
4
|
-
import {
|
|
5
|
-
import { LocalNode } from "../localNode";
|
|
6
|
-
import { toSimplifiedMessages } from "./messagesTestUtils";
|
|
7
|
-
import {
|
|
8
|
-
SyncMessagesLog,
|
|
9
|
-
createTestNode,
|
|
10
|
-
randomAnonymousAccountAndSessionID,
|
|
11
|
-
setupTestNode,
|
|
12
|
-
waitFor,
|
|
13
|
-
} from "./testUtils";
|
|
14
|
-
|
|
15
|
-
const Crypto = await WasmCrypto.create();
|
|
4
|
+
import { SyncMessagesLog, setupTestNode, waitFor } from "./testUtils";
|
|
16
5
|
|
|
17
6
|
let jazzCloud = setupTestNode({ isSyncServer: true });
|
|
18
7
|
|
|
@@ -32,8 +21,6 @@ describe("peer reconciliation", () => {
|
|
|
32
21
|
|
|
33
22
|
client.connectToSyncServer();
|
|
34
23
|
|
|
35
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
36
|
-
|
|
37
24
|
await map.core.waitForSync();
|
|
38
25
|
|
|
39
26
|
expect(
|
|
@@ -44,12 +31,12 @@ describe("peer reconciliation", () => {
|
|
|
44
31
|
).toMatchInlineSnapshot(`
|
|
45
32
|
[
|
|
46
33
|
"client -> server | LOAD Group sessions: header/3",
|
|
47
|
-
"server -> client | KNOWN Group sessions: empty",
|
|
48
34
|
"client -> server | LOAD Map sessions: header/1",
|
|
49
|
-
"server -> client | KNOWN
|
|
35
|
+
"server -> client | KNOWN Group sessions: empty",
|
|
50
36
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
51
|
-
"server -> client | KNOWN
|
|
37
|
+
"server -> client | KNOWN Map sessions: empty",
|
|
52
38
|
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
|
|
39
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
53
40
|
"server -> client | KNOWN Map sessions: header/1",
|
|
54
41
|
]
|
|
55
42
|
`);
|
|
@@ -93,10 +80,10 @@ describe("peer reconciliation", () => {
|
|
|
93
80
|
).toMatchInlineSnapshot(`
|
|
94
81
|
[
|
|
95
82
|
"client -> server | LOAD Group sessions: header/3",
|
|
96
|
-
"server -> client | KNOWN Group sessions: header/3",
|
|
97
83
|
"client -> server | LOAD Map sessions: header/2",
|
|
98
|
-
"server -> client | KNOWN
|
|
84
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
99
85
|
"client -> server | CONTENT Map header: false new: After: 1 New: 1",
|
|
86
|
+
"server -> client | KNOWN Map sessions: header/1",
|
|
100
87
|
"server -> client | KNOWN Map sessions: header/2",
|
|
101
88
|
]
|
|
102
89
|
`);
|
|
@@ -148,10 +135,11 @@ describe("peer reconciliation", () => {
|
|
|
148
135
|
).toMatchInlineSnapshot(`
|
|
149
136
|
[
|
|
150
137
|
"client -> server | LOAD Group sessions: header/3",
|
|
151
|
-
"
|
|
138
|
+
"client -> server | LOAD Group sessions: header/3",
|
|
152
139
|
"client -> server | LOAD Map sessions: header/2",
|
|
153
|
-
"server -> client | KNOWN
|
|
140
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
154
141
|
"client -> server | CONTENT Map header: false new: After: 1 New: 1",
|
|
142
|
+
"server -> client | KNOWN Map sessions: header/1",
|
|
155
143
|
"server -> client | KNOWN Map sessions: header/2",
|
|
156
144
|
]
|
|
157
145
|
`);
|
|
@@ -191,16 +179,16 @@ describe("peer reconciliation", () => {
|
|
|
191
179
|
).toMatchInlineSnapshot(`
|
|
192
180
|
[
|
|
193
181
|
"client -> server | LOAD Group sessions: header/3",
|
|
194
|
-
"server -> client | KNOWN Group sessions: empty",
|
|
195
182
|
"client -> server | LOAD Map sessions: header/2",
|
|
196
|
-
"server -> client | KNOWN
|
|
183
|
+
"server -> client | KNOWN Group sessions: empty",
|
|
197
184
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
198
|
-
"server -> client | KNOWN
|
|
185
|
+
"server -> client | KNOWN Map sessions: empty",
|
|
199
186
|
"client -> server | CONTENT Map header: true new: After: 0 New: 2",
|
|
187
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
200
188
|
"server -> client | KNOWN Map sessions: header/2",
|
|
201
189
|
"client -> server | LOAD Group sessions: header/3",
|
|
202
|
-
"server -> client | KNOWN Group sessions: header/3",
|
|
203
190
|
"client -> server | LOAD Map sessions: header/2",
|
|
191
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
204
192
|
"server -> client | KNOWN Map sessions: header/2",
|
|
205
193
|
]
|
|
206
194
|
`);
|
|
@@ -39,11 +39,11 @@ describe("client with storage syncs with server", () => {
|
|
|
39
39
|
"client -> server | LOAD Map sessions: empty",
|
|
40
40
|
"server -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
41
41
|
"client -> server | KNOWN Group sessions: header/3",
|
|
42
|
-
"client -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
43
42
|
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
43
|
+
"client -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
44
|
+
"client -> server | KNOWN Map sessions: header/1",
|
|
44
45
|
"storage -> client | KNOWN Group sessions: header/3",
|
|
45
46
|
"client -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
46
|
-
"client -> server | KNOWN Map sessions: header/1",
|
|
47
47
|
"storage -> client | KNOWN Map sessions: header/1",
|
|
48
48
|
]
|
|
49
49
|
`);
|
|
@@ -76,10 +76,12 @@ describe("client with storage syncs with server", () => {
|
|
|
76
76
|
"client -> storage | KNOWN Group sessions: header/3",
|
|
77
77
|
"storage -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
78
78
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
79
|
+
"client -> storage | KNOWN Map sessions: header/1",
|
|
79
80
|
"server -> client | KNOWN Group sessions: header/3",
|
|
80
81
|
"client -> server | LOAD Map sessions: header/1",
|
|
81
|
-
"client -> storage | KNOWN Map sessions: header/1",
|
|
82
82
|
"server -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
83
|
+
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
|
|
84
|
+
"server -> client | KNOWN Map sessions: header/1",
|
|
83
85
|
"client -> server | KNOWN Group sessions: header/3",
|
|
84
86
|
"server -> client | KNOWN Map sessions: header/1",
|
|
85
87
|
]
|
|
@@ -117,16 +119,16 @@ describe("client with storage syncs with server", () => {
|
|
|
117
119
|
"client -> server | LOAD Map sessions: empty",
|
|
118
120
|
"server -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
119
121
|
"client -> server | KNOWN ParentGroup sessions: header/6",
|
|
120
|
-
"client -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
121
122
|
"server -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
122
|
-
"
|
|
123
|
+
"client -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
124
|
+
"client -> server | KNOWN Group sessions: header/5",
|
|
123
125
|
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
126
|
+
"storage -> client | KNOWN ParentGroup sessions: header/6",
|
|
124
127
|
"client -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
128
|
+
"client -> server | KNOWN Map sessions: header/1",
|
|
125
129
|
"storage -> client | KNOWN Group sessions: header/5",
|
|
126
|
-
"client -> server | KNOWN Group sessions: header/5",
|
|
127
130
|
"client -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
128
131
|
"storage -> client | KNOWN Map sessions: header/1",
|
|
129
|
-
"client -> server | KNOWN Map sessions: header/1",
|
|
130
132
|
]
|
|
131
133
|
`);
|
|
132
134
|
});
|
|
@@ -167,7 +169,9 @@ describe("client with storage syncs with server", () => {
|
|
|
167
169
|
"client -> server | LOAD Map sessions: header/1",
|
|
168
170
|
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
169
171
|
"client -> server | KNOWN Map sessions: header/2",
|
|
172
|
+
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
170
173
|
"client -> storage | CONTENT Map header: false new: After: 1 New: 1",
|
|
174
|
+
"client -> server | KNOWN Map sessions: header/2",
|
|
171
175
|
"storage -> client | KNOWN Map sessions: header/2",
|
|
172
176
|
]
|
|
173
177
|
`);
|
|
@@ -212,10 +216,10 @@ describe("client syncs with a server with storage", () => {
|
|
|
212
216
|
[
|
|
213
217
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
214
218
|
"server -> client | KNOWN Group sessions: header/3",
|
|
215
|
-
"server -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
216
219
|
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
|
|
217
|
-
"
|
|
220
|
+
"server -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
218
221
|
"server -> client | KNOWN Map sessions: header/1",
|
|
222
|
+
"storage -> server | KNOWN Group sessions: header/3",
|
|
219
223
|
"server -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
220
224
|
"storage -> server | KNOWN Map sessions: header/1",
|
|
221
225
|
]
|
package/src/tests/sync.test.ts
CHANGED
|
@@ -31,7 +31,7 @@ beforeEach(async () => {
|
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
test("If we add a peer, but it never subscribes to a coValue, it won't get any messages", async () => {
|
|
34
|
+
test("If we add a client peer, but it never subscribes to a coValue, it won't get any messages", async () => {
|
|
35
35
|
const [admin, session] = randomAnonymousAccountAndSessionID();
|
|
36
36
|
const node = new LocalNode(admin, session, Crypto);
|
|
37
37
|
|
|
@@ -47,7 +47,7 @@ test("If we add a peer, but it never subscribes to a coValue, it won't get any m
|
|
|
47
47
|
id: "test",
|
|
48
48
|
incoming: inRx,
|
|
49
49
|
outgoing: outTx,
|
|
50
|
-
role: "
|
|
50
|
+
role: "client",
|
|
51
51
|
crashOnClose: true,
|
|
52
52
|
});
|
|
53
53
|
|
|
@@ -561,7 +561,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
|
|
|
561
561
|
const mapOnClient = group.createMap();
|
|
562
562
|
mapOnClient.set("key1", "value1", "trusting");
|
|
563
563
|
|
|
564
|
-
await client.syncManager.
|
|
564
|
+
await client.syncManager.syncCoValue(mapOnClient.core);
|
|
565
565
|
|
|
566
566
|
// Wait for the full sync to complete
|
|
567
567
|
await mapOnClient.core.waitForSync();
|
|
@@ -592,7 +592,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
|
|
|
592
592
|
const map = group.createMap();
|
|
593
593
|
map.set("key1", "value1", "trusting");
|
|
594
594
|
|
|
595
|
-
await client.node.syncManager.
|
|
595
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
596
596
|
await map.core.waitForSync();
|
|
597
597
|
|
|
598
598
|
// Block the content messages
|
|
@@ -604,7 +604,7 @@ describe("SyncManager - knownStates vs optimisticKnownStates", () => {
|
|
|
604
604
|
|
|
605
605
|
map.set("key2", "value2", "trusting");
|
|
606
606
|
|
|
607
|
-
await client.node.syncManager.
|
|
607
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
608
608
|
|
|
609
609
|
expect(peerState.optimisticKnownStates.get(map.core.id)).not.toEqual(
|
|
610
610
|
peerState.knownStates.get(map.core.id),
|
|
@@ -636,7 +636,7 @@ describe("SyncManager.addPeer", () => {
|
|
|
636
636
|
const map = group.createMap();
|
|
637
637
|
map.set("key1", "value1", "trusting");
|
|
638
638
|
|
|
639
|
-
await client.node.syncManager.
|
|
639
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
640
640
|
|
|
641
641
|
// Wait for initial sync
|
|
642
642
|
await map.core.waitForSync();
|
|
@@ -669,7 +669,7 @@ describe("SyncManager.addPeer", () => {
|
|
|
669
669
|
const map = group.createMap();
|
|
670
670
|
map.set("key1", "value1", "trusting");
|
|
671
671
|
|
|
672
|
-
await client.node.syncManager.
|
|
672
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
673
673
|
|
|
674
674
|
// Wait for initial sync
|
|
675
675
|
await map.core.waitForSync();
|
|
@@ -841,7 +841,7 @@ describe("waitForSyncWithPeer", () => {
|
|
|
841
841
|
const map = group.createMap();
|
|
842
842
|
map.set("key1", "value1", "trusting");
|
|
843
843
|
|
|
844
|
-
await client.node.syncManager.
|
|
844
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
845
845
|
|
|
846
846
|
await expect(
|
|
847
847
|
client.node.syncManager.waitForSyncWithPeer(
|
|
@@ -866,7 +866,7 @@ describe("waitForSyncWithPeer", () => {
|
|
|
866
866
|
return Promise.resolve();
|
|
867
867
|
});
|
|
868
868
|
|
|
869
|
-
await client.node.syncManager.
|
|
869
|
+
await client.node.syncManager.syncCoValue(map.core);
|
|
870
870
|
|
|
871
871
|
await expect(
|
|
872
872
|
client.node.syncManager.waitForSyncWithPeer(
|
|
@@ -914,7 +914,7 @@ describe("metrics", () => {
|
|
|
914
914
|
const node = new LocalNode(admin, session, Crypto);
|
|
915
915
|
|
|
916
916
|
let connectedPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
917
|
-
role: "
|
|
917
|
+
role: "client",
|
|
918
918
|
});
|
|
919
919
|
expect(connectedPeers).toBeUndefined();
|
|
920
920
|
let connectedServerPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
@@ -928,12 +928,12 @@ describe("metrics", () => {
|
|
|
928
928
|
id: "peer-1",
|
|
929
929
|
incoming: inPeer1,
|
|
930
930
|
outgoing: outPeer1,
|
|
931
|
-
role: "
|
|
931
|
+
role: "client",
|
|
932
932
|
crashOnClose: false,
|
|
933
933
|
});
|
|
934
934
|
|
|
935
935
|
connectedPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
936
|
-
role: "
|
|
936
|
+
role: "client",
|
|
937
937
|
});
|
|
938
938
|
expect(connectedPeers).toBe(1);
|
|
939
939
|
|
|
@@ -943,12 +943,12 @@ describe("metrics", () => {
|
|
|
943
943
|
id: "peer-2",
|
|
944
944
|
incoming: inPeer2,
|
|
945
945
|
outgoing: outPeer2,
|
|
946
|
-
role: "
|
|
946
|
+
role: "client",
|
|
947
947
|
crashOnClose: false,
|
|
948
948
|
});
|
|
949
949
|
|
|
950
950
|
connectedPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
951
|
-
role: "
|
|
951
|
+
role: "client",
|
|
952
952
|
});
|
|
953
953
|
expect(connectedPeers).toBe(2);
|
|
954
954
|
|
|
@@ -966,7 +966,7 @@ describe("metrics", () => {
|
|
|
966
966
|
});
|
|
967
967
|
expect(connectedServerPeers).toBe(1);
|
|
968
968
|
connectedPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
969
|
-
role: "
|
|
969
|
+
role: "client",
|
|
970
970
|
});
|
|
971
971
|
expect(connectedPeers).toBe(2);
|
|
972
972
|
|
|
@@ -975,7 +975,7 @@ describe("metrics", () => {
|
|
|
975
975
|
await waitFor(() => node.syncManager.peers["peer-1"]?.closed);
|
|
976
976
|
|
|
977
977
|
connectedPeers = await metricReader.getMetricValue("jazz.peers", {
|
|
978
|
-
role: "
|
|
978
|
+
role: "client",
|
|
979
979
|
});
|
|
980
980
|
expect(connectedPeers).toBe(1);
|
|
981
981
|
|
|
@@ -991,20 +991,6 @@ describe("metrics", () => {
|
|
|
991
991
|
});
|
|
992
992
|
});
|
|
993
993
|
|
|
994
|
-
function groupContentEx(group: RawGroup) {
|
|
995
|
-
return {
|
|
996
|
-
action: "content",
|
|
997
|
-
id: group.core.id,
|
|
998
|
-
};
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
function groupStateEx(group: RawGroup) {
|
|
1002
|
-
return {
|
|
1003
|
-
action: "known",
|
|
1004
|
-
id: group.core.id,
|
|
1005
|
-
};
|
|
1006
|
-
}
|
|
1007
|
-
|
|
1008
994
|
describe("LocalNode.load", () => {
|
|
1009
995
|
test("should throw error when trying to load with undefined ID", async () => {
|
|
1010
996
|
const client = await setupTestAccount();
|
|
@@ -169,32 +169,32 @@ describe("client to server upload", () => {
|
|
|
169
169
|
"client -> server | CONTENT Map header: false new: After: 0 New: 73",
|
|
170
170
|
"server -> client | KNOWN Map sessions: header/73",
|
|
171
171
|
"client -> server | CONTENT Map header: false new: After: 73 New: 73",
|
|
172
|
-
"client -> server | CONTENT Map header: false new: After: 146 New: 73",
|
|
173
172
|
"server -> client | KNOWN Map sessions: header/146",
|
|
174
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
175
|
-
"client -> server | CONTENT Map header: false new: After: 292 New: 73",
|
|
173
|
+
"client -> server | CONTENT Map header: false new: After: 146 New: 73",
|
|
176
174
|
"server -> client | KNOWN Map sessions: header/219",
|
|
177
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
178
|
-
"client -> server | CONTENT Map header: false new: After: 438 New: 73",
|
|
175
|
+
"client -> server | CONTENT Map header: false new: After: 219 New: 73",
|
|
179
176
|
"server -> client | KNOWN Map sessions: header/292",
|
|
180
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
181
|
-
"client -> server | CONTENT Map header: false new: After: 584 New: 73",
|
|
177
|
+
"client -> server | CONTENT Map header: false new: After: 292 New: 73",
|
|
182
178
|
"server -> client | KNOWN Map sessions: header/365",
|
|
183
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
184
|
-
"client -> server | CONTENT Map header: false new: After: 730 New: 73",
|
|
179
|
+
"client -> server | CONTENT Map header: false new: After: 365 New: 73",
|
|
185
180
|
"server -> client | KNOWN Map sessions: header/438",
|
|
186
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
187
|
-
"client -> server | CONTENT Map header: false new: After: 876 New: 73",
|
|
181
|
+
"client -> server | CONTENT Map header: false new: After: 438 New: 73",
|
|
188
182
|
"server -> client | KNOWN Map sessions: header/511",
|
|
189
|
-
"client -> server | CONTENT Map header: false new: After:
|
|
190
|
-
"client -> server | CONTENT Map header: false new: After: 1022 New: 2",
|
|
183
|
+
"client -> server | CONTENT Map header: false new: After: 511 New: 73",
|
|
191
184
|
"server -> client | KNOWN Map sessions: header/584",
|
|
185
|
+
"client -> server | CONTENT Map header: false new: After: 584 New: 73",
|
|
192
186
|
"server -> client | KNOWN Map sessions: header/657",
|
|
187
|
+
"client -> server | CONTENT Map header: false new: After: 657 New: 73",
|
|
193
188
|
"server -> client | KNOWN Map sessions: header/730",
|
|
189
|
+
"client -> server | CONTENT Map header: false new: After: 730 New: 73",
|
|
194
190
|
"server -> client | KNOWN Map sessions: header/803",
|
|
191
|
+
"client -> server | CONTENT Map header: false new: After: 803 New: 73",
|
|
195
192
|
"server -> client | KNOWN Map sessions: header/876",
|
|
193
|
+
"client -> server | CONTENT Map header: false new: After: 876 New: 73",
|
|
196
194
|
"server -> client | KNOWN Map sessions: header/949",
|
|
195
|
+
"client -> server | CONTENT Map header: false new: After: 949 New: 73",
|
|
197
196
|
"server -> client | KNOWN Map sessions: header/1022",
|
|
197
|
+
"client -> server | CONTENT Map header: false new: After: 1022 New: 2",
|
|
198
198
|
"server -> client | KNOWN Map sessions: header/1024",
|
|
199
199
|
]
|
|
200
200
|
`);
|