cojson 0.15.7 → 0.15.9
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/IncomingMessagesQueue.d.ts +27 -0
- package/dist/IncomingMessagesQueue.d.ts.map +1 -0
- package/dist/IncomingMessagesQueue.js +114 -0
- package/dist/IncomingMessagesQueue.js.map +1 -0
- package/dist/PeerState.d.ts +2 -10
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/PeerState.js +9 -90
- package/dist/PeerState.js.map +1 -1
- package/dist/PriorityBasedMessageQueue.d.ts +2 -1
- package/dist/PriorityBasedMessageQueue.d.ts.map +1 -1
- package/dist/PriorityBasedMessageQueue.js +9 -6
- package/dist/PriorityBasedMessageQueue.js.map +1 -1
- package/dist/SyncStateManager.d.ts +1 -0
- package/dist/SyncStateManager.d.ts.map +1 -1
- package/dist/SyncStateManager.js +1 -1
- package/dist/SyncStateManager.js.map +1 -1
- package/dist/coValue.d.ts +1 -1
- package/dist/coValueCore/coValueCore.d.ts +9 -17
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +75 -50
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +10 -3
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +73 -14
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/coMap.d.ts +3 -3
- package/dist/coValues/coStream.d.ts +2 -2
- package/dist/coValues/group.d.ts +1 -1
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +2 -4
- package/dist/coValues/group.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/crypto/WasmCrypto.d.ts.map +1 -1
- package/dist/crypto/WasmCrypto.js +2 -1
- package/dist/crypto/WasmCrypto.js.map +1 -1
- package/dist/exports.d.ts +18 -7
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +11 -8
- package/dist/exports.js.map +1 -1
- package/dist/localNode.d.ts +8 -2
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +19 -12
- package/dist/localNode.js.map +1 -1
- package/dist/storage/StoreQueue.d.ts +15 -0
- package/dist/storage/StoreQueue.d.ts.map +1 -0
- package/dist/storage/StoreQueue.js +35 -0
- package/dist/storage/StoreQueue.js.map +1 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +6 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/knownState.d.ts +18 -0
- package/dist/storage/knownState.d.ts.map +1 -0
- package/dist/storage/knownState.js +63 -0
- package/dist/storage/knownState.js.map +1 -0
- package/dist/storage/sqlite/client.d.ts +37 -0
- package/dist/storage/sqlite/client.d.ts.map +1 -0
- package/dist/storage/sqlite/client.js +89 -0
- package/dist/storage/sqlite/client.js.map +1 -0
- package/dist/storage/sqlite/index.d.ts +5 -0
- package/dist/storage/sqlite/index.d.ts.map +1 -0
- package/dist/storage/sqlite/index.js +13 -0
- package/dist/storage/sqlite/index.js.map +1 -0
- package/dist/storage/sqlite/sqliteMigrations.d.ts +3 -0
- package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -0
- package/dist/storage/sqlite/sqliteMigrations.js +44 -0
- package/dist/storage/sqlite/sqliteMigrations.js.map +1 -0
- package/dist/storage/sqlite/types.d.ts +8 -0
- package/dist/storage/sqlite/types.d.ts.map +1 -0
- package/dist/storage/sqlite/types.js +2 -0
- package/dist/storage/sqlite/types.js.map +1 -0
- package/dist/storage/sqliteAsync/client.d.ts +37 -0
- package/dist/storage/sqliteAsync/client.d.ts.map +1 -0
- package/dist/storage/sqliteAsync/client.js +88 -0
- package/dist/storage/sqliteAsync/client.js.map +1 -0
- package/dist/storage/sqliteAsync/index.d.ts +6 -0
- package/dist/storage/sqliteAsync/index.d.ts.map +1 -0
- package/dist/storage/sqliteAsync/index.js +15 -0
- package/dist/storage/sqliteAsync/index.js.map +1 -0
- package/dist/storage/sqliteAsync/types.d.ts +9 -0
- package/dist/storage/sqliteAsync/types.d.ts.map +1 -0
- package/dist/storage/sqliteAsync/types.js +2 -0
- package/dist/storage/sqliteAsync/types.js.map +1 -0
- package/dist/storage/storageAsync.d.ts +22 -0
- package/dist/storage/storageAsync.d.ts.map +1 -0
- package/dist/storage/storageAsync.js +214 -0
- package/dist/storage/storageAsync.js.map +1 -0
- package/dist/storage/storageSync.d.ts +21 -0
- package/dist/storage/storageSync.d.ts.map +1 -0
- package/dist/storage/storageSync.js +206 -0
- package/dist/storage/storageSync.js.map +1 -0
- package/dist/storage/syncUtils.d.ts +13 -0
- package/dist/storage/syncUtils.d.ts.map +1 -0
- package/dist/storage/syncUtils.js +25 -0
- package/dist/storage/syncUtils.js.map +1 -0
- package/dist/storage/types.d.ts +82 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/streamUtils.d.ts +13 -9
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +46 -13
- package/dist/streamUtils.js.map +1 -1
- package/dist/sync.d.ts +22 -14
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +143 -125
- package/dist/sync.js.map +1 -1
- package/dist/tests/IncomingMessagesQueue.test.d.ts +2 -0
- package/dist/tests/IncomingMessagesQueue.test.d.ts.map +1 -0
- package/dist/tests/IncomingMessagesQueue.test.js +437 -0
- package/dist/tests/IncomingMessagesQueue.test.js.map +1 -0
- package/dist/tests/PeerState.test.js +6 -94
- package/dist/tests/PeerState.test.js.map +1 -1
- package/dist/tests/PriorityBasedMessageQueue.test.js +14 -14
- package/dist/tests/PriorityBasedMessageQueue.test.js.map +1 -1
- package/dist/tests/StoreQueue.test.d.ts +2 -0
- package/dist/tests/StoreQueue.test.d.ts.map +1 -0
- package/dist/tests/StoreQueue.test.js +208 -0
- package/dist/tests/StoreQueue.test.js.map +1 -0
- package/dist/tests/SyncStateManager.test.js +3 -1
- package/dist/tests/SyncStateManager.test.js.map +1 -1
- package/dist/tests/account.test.js +9 -9
- package/dist/tests/account.test.js.map +1 -1
- package/dist/tests/coStream.test.js +1 -1
- package/dist/tests/coStream.test.js.map +1 -1
- package/dist/tests/coValueCore.test.js +208 -1
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/coValueCoreLoadingState.test.js +2 -2
- package/dist/tests/coValueCoreLoadingState.test.js.map +1 -1
- package/dist/tests/group.addMember.test.js.map +1 -1
- package/dist/tests/group.removeMember.test.js +1 -1
- package/dist/tests/group.removeMember.test.js.map +1 -1
- package/dist/tests/messagesTestUtils.js +1 -1
- package/dist/tests/messagesTestUtils.js.map +1 -1
- package/dist/tests/sync.auth.test.js +23 -15
- package/dist/tests/sync.auth.test.js.map +1 -1
- package/dist/tests/sync.invite.test.js +10 -16
- package/dist/tests/sync.invite.test.js.map +1 -1
- package/dist/tests/sync.load.test.js +52 -50
- package/dist/tests/sync.load.test.js.map +1 -1
- package/dist/tests/sync.mesh.test.js +173 -56
- package/dist/tests/sync.mesh.test.js.map +1 -1
- package/dist/tests/sync.peerReconciliation.test.js +42 -32
- package/dist/tests/sync.peerReconciliation.test.js.map +1 -1
- package/dist/tests/sync.storage.test.js +162 -62
- package/dist/tests/sync.storage.test.js.map +1 -1
- package/dist/tests/sync.storageAsync.test.d.ts +2 -0
- package/dist/tests/sync.storageAsync.test.d.ts.map +1 -0
- package/dist/tests/sync.storageAsync.test.js +361 -0
- package/dist/tests/sync.storageAsync.test.js.map +1 -0
- package/dist/tests/sync.test.js +16 -21
- package/dist/tests/sync.test.js.map +1 -1
- package/dist/tests/sync.upload.test.js +28 -25
- package/dist/tests/sync.upload.test.js.map +1 -1
- package/dist/tests/testStorage.d.ts +12 -0
- package/dist/tests/testStorage.d.ts.map +1 -0
- package/dist/tests/testStorage.js +151 -0
- package/dist/tests/testStorage.js.map +1 -0
- package/dist/tests/testUtils.d.ts +20 -15
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +79 -45
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +2 -2
- package/src/IncomingMessagesQueue.ts +142 -0
- package/src/PeerState.ts +11 -110
- package/src/PriorityBasedMessageQueue.ts +13 -5
- package/src/SyncStateManager.ts +1 -1
- package/src/coValueCore/coValueCore.ts +100 -66
- package/src/coValueCore/verifiedState.ts +91 -21
- package/src/coValues/group.ts +2 -4
- package/src/config.ts +26 -0
- package/src/crypto/WasmCrypto.ts +3 -1
- package/src/exports.ts +20 -27
- package/src/localNode.ts +27 -12
- package/src/storage/StoreQueue.ts +56 -0
- package/src/storage/index.ts +5 -0
- package/src/storage/knownState.ts +88 -0
- package/src/storage/sqlite/client.ts +180 -0
- package/src/storage/sqlite/index.ts +19 -0
- package/src/storage/sqlite/sqliteMigrations.ts +44 -0
- package/src/storage/sqlite/types.ts +7 -0
- package/src/storage/sqliteAsync/client.ts +179 -0
- package/src/storage/sqliteAsync/index.ts +25 -0
- package/src/storage/sqliteAsync/types.ts +8 -0
- package/src/storage/storageAsync.ts +367 -0
- package/src/storage/storageSync.ts +343 -0
- package/src/storage/syncUtils.ts +50 -0
- package/src/storage/types.ts +162 -0
- package/src/streamUtils.ts +61 -19
- package/src/sync.ts +191 -160
- package/src/tests/IncomingMessagesQueue.test.ts +626 -0
- package/src/tests/PeerState.test.ts +6 -118
- package/src/tests/PriorityBasedMessageQueue.test.ts +18 -14
- package/src/tests/StoreQueue.test.ts +283 -0
- package/src/tests/SyncStateManager.test.ts +4 -1
- package/src/tests/account.test.ts +11 -12
- package/src/tests/coStream.test.ts +1 -3
- package/src/tests/coValueCore.test.ts +270 -1
- package/src/tests/coValueCoreLoadingState.test.ts +2 -2
- package/src/tests/group.addMember.test.ts +1 -0
- package/src/tests/group.removeMember.test.ts +2 -8
- package/src/tests/messagesTestUtils.ts +2 -2
- package/src/tests/sync.auth.test.ts +24 -14
- package/src/tests/sync.invite.test.ts +11 -17
- package/src/tests/sync.load.test.ts +53 -49
- package/src/tests/sync.mesh.test.ts +198 -56
- package/src/tests/sync.peerReconciliation.test.ts +44 -34
- package/src/tests/sync.storage.test.ts +231 -64
- package/src/tests/sync.storageAsync.test.ts +486 -0
- package/src/tests/sync.test.ts +17 -23
- package/src/tests/sync.upload.test.ts +29 -24
- package/src/tests/testStorage.ts +216 -0
- package/src/tests/testUtils.ts +89 -54
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, test } from "vitest";
|
|
2
|
-
import {
|
|
1
|
+
import { assert, afterEach, beforeEach, describe, expect, test, vi, } from "vitest";
|
|
2
|
+
import { emptyKnownState } from "../exports";
|
|
3
|
+
import { SyncMessagesLog, TEST_NODE_CONFIG, createTestMetricReader, loadCoValueOrFail, setupTestNode, tearDownTestMetricReader, waitFor, } from "./testUtils";
|
|
4
|
+
// We want to simulate a real world communication that happens asynchronously
|
|
5
|
+
TEST_NODE_CONFIG.withAsyncPeers = true;
|
|
3
6
|
describe("client with storage syncs with server", () => {
|
|
4
|
-
let jazzCloud
|
|
5
|
-
isSyncServer: true,
|
|
6
|
-
});
|
|
7
|
+
let jazzCloud;
|
|
7
8
|
beforeEach(async () => {
|
|
8
9
|
SyncMessagesLog.clear();
|
|
9
10
|
jazzCloud = setupTestNode({
|
|
@@ -13,7 +14,7 @@ describe("client with storage syncs with server", () => {
|
|
|
13
14
|
test("coValue loading (empty storage)", async () => {
|
|
14
15
|
const client = setupTestNode();
|
|
15
16
|
client.connectToSyncServer();
|
|
16
|
-
client.
|
|
17
|
+
client.addStorage();
|
|
17
18
|
const group = jazzCloud.node.createGroup();
|
|
18
19
|
const map = group.createMap();
|
|
19
20
|
map.set("hello", "world", "trusting");
|
|
@@ -28,27 +29,29 @@ describe("client with storage syncs with server", () => {
|
|
|
28
29
|
"storage -> client | KNOWN Map sessions: empty",
|
|
29
30
|
"client -> server | LOAD Map sessions: empty",
|
|
30
31
|
"server -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
31
|
-
"client -> server | KNOWN Group sessions: header/3",
|
|
32
|
-
"client -> storage | LOAD Group sessions: header/3",
|
|
33
32
|
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
34
|
-
"
|
|
35
|
-
"client -> server | KNOWN Map sessions: header/1",
|
|
33
|
+
"client -> server | KNOWN Group sessions: header/3",
|
|
36
34
|
"client -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
37
|
-
"
|
|
35
|
+
"client -> server | KNOWN Map sessions: header/1",
|
|
38
36
|
"client -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
39
|
-
"storage -> client | KNOWN Map sessions: header/1",
|
|
40
37
|
]
|
|
41
38
|
`);
|
|
42
39
|
});
|
|
43
40
|
test("coValue loading (synced storage)", async () => {
|
|
44
41
|
const client = setupTestNode();
|
|
45
42
|
client.connectToSyncServer();
|
|
46
|
-
const { storage } = client.
|
|
47
|
-
// biome-ignore lint/suspicious/noExplicitAny: Super ugly, might have unintended side effects
|
|
48
|
-
storage.coValues = jazzCloud.node.coValues;
|
|
43
|
+
const { storage } = client.addStorage();
|
|
49
44
|
const group = jazzCloud.node.createGroup();
|
|
50
45
|
const map = group.createMap();
|
|
51
46
|
map.set("hello", "world", "trusting");
|
|
47
|
+
await loadCoValueOrFail(client.node, map.id);
|
|
48
|
+
client.restart();
|
|
49
|
+
client.connectToSyncServer();
|
|
50
|
+
client.addStorage({
|
|
51
|
+
ourName: "client",
|
|
52
|
+
storage,
|
|
53
|
+
});
|
|
54
|
+
SyncMessagesLog.clear();
|
|
52
55
|
const mapOnClient = await loadCoValueOrFail(client.node, map.id);
|
|
53
56
|
expect(mapOnClient.get("hello")).toEqual("world");
|
|
54
57
|
expect(SyncMessagesLog.getMessages({
|
|
@@ -58,20 +61,16 @@ describe("client with storage syncs with server", () => {
|
|
|
58
61
|
[
|
|
59
62
|
"client -> storage | LOAD Map sessions: empty",
|
|
60
63
|
"storage -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
61
|
-
"client -> storage | KNOWN Group sessions: header/3",
|
|
62
64
|
"client -> server | LOAD Group sessions: header/3",
|
|
63
65
|
"storage -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
64
|
-
"server -> client | KNOWN Group sessions: header/3",
|
|
65
|
-
"client -> storage | KNOWN Map sessions: header/1",
|
|
66
66
|
"client -> server | LOAD Map sessions: header/1",
|
|
67
|
-
"server -> client | KNOWN Map sessions: header/1",
|
|
68
67
|
]
|
|
69
68
|
`);
|
|
70
69
|
});
|
|
71
70
|
test("coValue with parent groups loading", async () => {
|
|
72
71
|
const client = setupTestNode();
|
|
73
72
|
client.connectToSyncServer();
|
|
74
|
-
client.
|
|
73
|
+
client.addStorage();
|
|
75
74
|
const group = jazzCloud.node.createGroup();
|
|
76
75
|
const parentGroup = jazzCloud.node.createGroup();
|
|
77
76
|
parentGroup.addMember("everyone", "reader");
|
|
@@ -90,28 +89,21 @@ describe("client with storage syncs with server", () => {
|
|
|
90
89
|
"storage -> client | KNOWN Map sessions: empty",
|
|
91
90
|
"client -> server | LOAD Map sessions: empty",
|
|
92
91
|
"server -> client | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
93
|
-
"client -> server | KNOWN ParentGroup sessions: header/6",
|
|
94
|
-
"client -> storage | LOAD ParentGroup sessions: header/6",
|
|
95
92
|
"server -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
96
|
-
"storage -> client | KNOWN ParentGroup sessions: empty",
|
|
97
|
-
"client -> server | KNOWN Group sessions: header/5",
|
|
98
|
-
"client -> storage | LOAD Group sessions: header/5",
|
|
99
93
|
"server -> client | CONTENT Map header: true new: After: 0 New: 1",
|
|
100
|
-
"
|
|
94
|
+
"client -> server | KNOWN ParentGroup sessions: header/6",
|
|
101
95
|
"client -> storage | CONTENT ParentGroup header: true new: After: 0 New: 6",
|
|
102
|
-
"client -> server | KNOWN
|
|
103
|
-
"storage -> client | KNOWN ParentGroup sessions: header/6",
|
|
96
|
+
"client -> server | KNOWN Group sessions: header/5",
|
|
104
97
|
"client -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
105
|
-
"
|
|
98
|
+
"client -> server | KNOWN Map sessions: header/1",
|
|
106
99
|
"client -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
107
|
-
"storage -> client | KNOWN Map sessions: header/1",
|
|
108
100
|
]
|
|
109
101
|
`);
|
|
110
102
|
});
|
|
111
103
|
test("updating a coValue while offline", async () => {
|
|
112
104
|
const client = setupTestNode();
|
|
113
105
|
client.connectToSyncServer();
|
|
114
|
-
client.
|
|
106
|
+
client.addStorage();
|
|
115
107
|
const group = jazzCloud.node.createGroup();
|
|
116
108
|
const map = group.createMap();
|
|
117
109
|
map.set("hello", "world", "trusting");
|
|
@@ -129,31 +121,36 @@ describe("client with storage syncs with server", () => {
|
|
|
129
121
|
})).toMatchInlineSnapshot(`
|
|
130
122
|
[
|
|
131
123
|
"client -> server | LOAD Group sessions: header/3",
|
|
132
|
-
"server -> client | KNOWN Group sessions: header/3",
|
|
133
124
|
"client -> server | LOAD Map sessions: header/1",
|
|
125
|
+
"server -> client | CONTENT Group header: true new: After: 0 New: 3",
|
|
126
|
+
"server -> client | CONTENT Map header: true new: After: 0 New: 2",
|
|
134
127
|
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
128
|
+
"client -> server | KNOWN Group sessions: header/3",
|
|
129
|
+
"client -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
135
130
|
"client -> server | KNOWN Map sessions: header/2",
|
|
136
|
-
"client -> storage | CONTENT Map header:
|
|
137
|
-
"server -> client | CONTENT Map header: false new: After: 1 New: 1",
|
|
138
|
-
"storage -> client | KNOWN Map sessions: header/2",
|
|
131
|
+
"client -> storage | CONTENT Map header: true new: After: 0 New: 2",
|
|
139
132
|
"client -> server | KNOWN Map sessions: header/2",
|
|
133
|
+
"client -> storage | CONTENT Map header: false new: After: 1 New: 1",
|
|
140
134
|
]
|
|
141
135
|
`);
|
|
142
136
|
});
|
|
143
137
|
});
|
|
144
138
|
describe("client syncs with a server with storage", () => {
|
|
145
|
-
let jazzCloud
|
|
146
|
-
|
|
147
|
-
});
|
|
139
|
+
let jazzCloud;
|
|
140
|
+
let metricReader;
|
|
148
141
|
beforeEach(async () => {
|
|
149
142
|
SyncMessagesLog.clear();
|
|
143
|
+
metricReader = createTestMetricReader();
|
|
150
144
|
jazzCloud = setupTestNode({
|
|
151
145
|
isSyncServer: true,
|
|
152
146
|
});
|
|
153
|
-
jazzCloud.
|
|
147
|
+
jazzCloud.addStorage({
|
|
154
148
|
ourName: "server",
|
|
155
149
|
});
|
|
156
150
|
});
|
|
151
|
+
afterEach(() => {
|
|
152
|
+
tearDownTestMetricReader();
|
|
153
|
+
});
|
|
157
154
|
test("coValue uploading", async () => {
|
|
158
155
|
const client = setupTestNode();
|
|
159
156
|
client.connectToSyncServer();
|
|
@@ -169,44 +166,147 @@ describe("client syncs with a server with storage", () => {
|
|
|
169
166
|
})).toMatchInlineSnapshot(`
|
|
170
167
|
[
|
|
171
168
|
"client -> server | CONTENT Group header: true new: After: 0 New: 3",
|
|
172
|
-
"server -> client | KNOWN Group sessions: header/3",
|
|
173
|
-
"server -> storage | LOAD Group sessions: header/3",
|
|
174
169
|
"client -> server | CONTENT Map header: true new: After: 0 New: 1",
|
|
175
|
-
"
|
|
176
|
-
"server -> client | KNOWN Map sessions: header/1",
|
|
177
|
-
"server -> storage | LOAD Map sessions: header/1",
|
|
178
|
-
"storage -> server | KNOWN Map sessions: empty",
|
|
170
|
+
"server -> client | KNOWN Group sessions: header/3",
|
|
179
171
|
"server -> storage | CONTENT Group header: true new: After: 0 New: 3",
|
|
180
|
-
"
|
|
172
|
+
"server -> client | KNOWN Map sessions: header/1",
|
|
181
173
|
"server -> storage | CONTENT Map header: true new: After: 0 New: 1",
|
|
182
|
-
"storage -> server | KNOWN Map sessions: header/1",
|
|
183
174
|
]
|
|
184
175
|
`);
|
|
185
176
|
});
|
|
186
|
-
test
|
|
177
|
+
test("loading a large coValue from storage", async () => {
|
|
187
178
|
const client = setupTestNode();
|
|
188
|
-
client.
|
|
179
|
+
client.connectToSyncServer({
|
|
180
|
+
syncServer: jazzCloud.node,
|
|
181
|
+
});
|
|
182
|
+
const { storage } = client.addStorage({
|
|
183
|
+
ourName: "client",
|
|
184
|
+
});
|
|
189
185
|
const group = client.node.createGroup();
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
186
|
+
group.addMember("everyone", "writer");
|
|
187
|
+
const largeMap = group.createMap();
|
|
188
|
+
// Generate a large amount of data (about 100MB)
|
|
189
|
+
const dataSize = 1 * 200 * 1024;
|
|
190
|
+
const chunkSize = 1024; // 1KB chunks
|
|
191
|
+
const chunks = dataSize / chunkSize;
|
|
192
|
+
const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
|
|
193
|
+
for (let i = 0; i < chunks; i++) {
|
|
194
|
+
const key = `key${i}`;
|
|
195
|
+
largeMap.set(key, value, "trusting");
|
|
196
|
+
}
|
|
197
|
+
await largeMap.core.waitForSync();
|
|
198
|
+
// Test streaming counter during initial sync
|
|
199
|
+
// The streaming counter should be 0 after the sync is complete
|
|
200
|
+
const streamingCounterAfterSync = await metricReader.getMetricValue("jazz.storage.streaming");
|
|
201
|
+
expect(streamingCounterAfterSync).toBe(0);
|
|
202
|
+
expect(SyncMessagesLog.getMessages({
|
|
203
|
+
Group: group.core,
|
|
204
|
+
Map: largeMap.core,
|
|
205
|
+
})).toMatchInlineSnapshot(`
|
|
206
|
+
[
|
|
207
|
+
"client -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
208
|
+
"client -> server | CONTENT Group header: true new: After: 0 New: 5",
|
|
209
|
+
"client -> storage | CONTENT Map header: true new: expectContentUntil: header/200",
|
|
210
|
+
"client -> storage | CONTENT Map header: false new: After: 0 New: 73",
|
|
211
|
+
"client -> storage | CONTENT Map header: false new: After: 73 New: 73",
|
|
212
|
+
"client -> storage | CONTENT Map header: false new: After: 146 New: 54",
|
|
213
|
+
"client -> server | CONTENT Map header: true new: expectContentUntil: header/200",
|
|
214
|
+
"client -> server | CONTENT Map header: false new: After: 0 New: 73",
|
|
215
|
+
"client -> server | CONTENT Map header: false new: After: 73 New: 73",
|
|
216
|
+
"client -> server | CONTENT Map header: false new: After: 146 New: 54",
|
|
217
|
+
"server -> client | KNOWN Group sessions: header/5",
|
|
218
|
+
"server -> storage | CONTENT Group header: true new: After: 0 New: 5",
|
|
219
|
+
"server -> client | KNOWN Map sessions: header/0",
|
|
220
|
+
"server -> storage | CONTENT Map header: true new: expectContentUntil: header/200",
|
|
221
|
+
"server -> client | KNOWN Map sessions: header/73",
|
|
222
|
+
"server -> storage | CONTENT Map header: false new: After: 0 New: 73",
|
|
223
|
+
"server -> client | KNOWN Map sessions: header/146",
|
|
224
|
+
"server -> storage | CONTENT Map header: false new: After: 73 New: 73",
|
|
225
|
+
"server -> client | KNOWN Map sessions: header/200",
|
|
226
|
+
"server -> storage | CONTENT Map header: false new: After: 146 New: 54",
|
|
227
|
+
]
|
|
228
|
+
`);
|
|
194
229
|
SyncMessagesLog.clear();
|
|
195
|
-
client.
|
|
196
|
-
|
|
197
|
-
|
|
230
|
+
client.restart();
|
|
231
|
+
client.connectToSyncServer({
|
|
232
|
+
ourName: "client",
|
|
233
|
+
syncServer: jazzCloud.node,
|
|
234
|
+
});
|
|
235
|
+
client.addStorage({
|
|
236
|
+
ourName: "client",
|
|
237
|
+
storage,
|
|
238
|
+
});
|
|
239
|
+
// Test streaming counter before loading the large coValue
|
|
240
|
+
const streamingCounterBeforeLoad = await metricReader.getMetricValue("jazz.storage.streaming");
|
|
241
|
+
expect(streamingCounterBeforeLoad).toBe(0);
|
|
242
|
+
const promise = loadCoValueOrFail(client.node, largeMap.id);
|
|
243
|
+
// Test streaming counter during loading (should be 1 during streaming)
|
|
244
|
+
const streamingCounterDuringLoad = await metricReader.getMetricValue("jazz.storage.streaming");
|
|
245
|
+
expect(streamingCounterDuringLoad).toBe(1);
|
|
246
|
+
const mapOnClient2 = await promise;
|
|
247
|
+
await mapOnClient2.core.waitForSync();
|
|
248
|
+
// Test streaming counter after loading is complete (should be 0)
|
|
249
|
+
await waitFor(async () => {
|
|
250
|
+
const streamingCounterAfterLoad = await metricReader.getMetricValue("jazz.storage.streaming");
|
|
251
|
+
expect(streamingCounterAfterLoad).toBe(0);
|
|
252
|
+
});
|
|
198
253
|
expect(SyncMessagesLog.getMessages({
|
|
199
254
|
Group: group.core,
|
|
200
|
-
Map:
|
|
255
|
+
Map: largeMap.core,
|
|
201
256
|
})).toMatchInlineSnapshot(`
|
|
202
257
|
[
|
|
203
|
-
"
|
|
204
|
-
"storage ->
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
"
|
|
258
|
+
"client -> storage | LOAD Map sessions: empty",
|
|
259
|
+
"storage -> client | CONTENT Group header: true new: After: 0 New: 5",
|
|
260
|
+
"client -> server | LOAD Group sessions: header/5",
|
|
261
|
+
"storage -> client | CONTENT Map header: true new: After: 0 New: 73 expectContentUntil: header/200",
|
|
262
|
+
"client -> server | LOAD Map sessions: header/200",
|
|
263
|
+
"server -> client | KNOWN Group sessions: header/5",
|
|
264
|
+
"server -> client | KNOWN Map sessions: header/200",
|
|
265
|
+
"storage -> client | CONTENT Map header: true new: After: 73 New: 73",
|
|
266
|
+
"storage -> client | CONTENT Map header: true new: After: 146 New: 54",
|
|
208
267
|
]
|
|
209
268
|
`);
|
|
210
269
|
});
|
|
270
|
+
test("storing stale data should not compromise the signatures", async () => {
|
|
271
|
+
const client = setupTestNode();
|
|
272
|
+
client.connectToSyncServer({
|
|
273
|
+
syncServer: jazzCloud.node,
|
|
274
|
+
});
|
|
275
|
+
const { storage } = client.addStorage({
|
|
276
|
+
ourName: "client",
|
|
277
|
+
});
|
|
278
|
+
const group = client.node.createGroup();
|
|
279
|
+
group.addMember("everyone", "writer");
|
|
280
|
+
const largeMap = group.createMap();
|
|
281
|
+
// Generate a large amount of data (about 100MB)
|
|
282
|
+
const dataSize = 1 * 200 * 1024;
|
|
283
|
+
const chunkSize = 1024; // 1KB chunks
|
|
284
|
+
const chunks = dataSize / chunkSize;
|
|
285
|
+
const value = Buffer.alloc(chunkSize, `value$`).toString("base64");
|
|
286
|
+
for (let i = 0; i < chunks; i++) {
|
|
287
|
+
const key = `key${i}`;
|
|
288
|
+
largeMap.set(key, value, "trusting");
|
|
289
|
+
}
|
|
290
|
+
await largeMap.core.waitForSync();
|
|
291
|
+
const newContentChunks = largeMap.core.verified.newContentSince(emptyKnownState(largeMap.id));
|
|
292
|
+
assert(newContentChunks);
|
|
293
|
+
assert(newContentChunks.length > 1);
|
|
294
|
+
const correctionSpy = vi.fn();
|
|
295
|
+
client.node.storage?.store(newContentChunks.slice(1, 2), correctionSpy);
|
|
296
|
+
expect(correctionSpy).not.toHaveBeenCalled();
|
|
297
|
+
client.restart();
|
|
298
|
+
client.connectToSyncServer({
|
|
299
|
+
ourName: "client",
|
|
300
|
+
syncServer: jazzCloud.node,
|
|
301
|
+
});
|
|
302
|
+
client.addStorage({
|
|
303
|
+
ourName: "client",
|
|
304
|
+
storage,
|
|
305
|
+
});
|
|
306
|
+
const mapOnClient2 = await loadCoValueOrFail(client.node, largeMap.id);
|
|
307
|
+
await waitFor(async () => {
|
|
308
|
+
expect(mapOnClient2.core.knownState()).toEqual(largeMap.core.knownState());
|
|
309
|
+
});
|
|
310
|
+
});
|
|
211
311
|
});
|
|
212
312
|
//# sourceMappingURL=sync.storage.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.storage.test.js","sourceRoot":"","sources":["../../src/tests/sync.storage.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sync.storage.test.js","sourceRoot":"","sources":["../../src/tests/sync.storage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.storageAsync.test.d.ts","sourceRoot":"","sources":["../../src/tests/sync.storageAsync.test.ts"],"names":[],"mappings":""}
|