@powersync/service-core-tests 0.15.0 → 0.15.2
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/CHANGELOG.md +27 -0
- package/dist/test-utils/general-utils.d.ts +13 -1
- package/dist/test-utils/general-utils.js +30 -1
- package/dist/test-utils/general-utils.js.map +1 -1
- package/dist/test-utils/stream_utils.js +2 -2
- package/dist/test-utils/stream_utils.js.map +1 -1
- package/dist/tests/register-compacting-tests.js +266 -257
- package/dist/tests/register-compacting-tests.js.map +1 -1
- package/dist/tests/register-data-storage-checkpoint-tests.js +36 -57
- package/dist/tests/register-data-storage-checkpoint-tests.js.map +1 -1
- package/dist/tests/register-data-storage-data-tests.js +839 -863
- package/dist/tests/register-data-storage-data-tests.js.map +1 -1
- package/dist/tests/register-data-storage-parameter-tests.js +228 -236
- package/dist/tests/register-data-storage-parameter-tests.js.map +1 -1
- package/dist/tests/register-parameter-compacting-tests.js +81 -89
- package/dist/tests/register-parameter-compacting-tests.js.map +1 -1
- package/dist/tests/register-sync-tests.js +468 -462
- package/dist/tests/register-sync-tests.js.map +1 -1
- package/package.json +3 -3
- package/src/test-utils/general-utils.ts +41 -2
- package/src/test-utils/stream_utils.ts +2 -2
- package/src/tests/register-compacting-tests.ts +279 -270
- package/src/tests/register-data-storage-checkpoint-tests.ts +36 -57
- package/src/tests/register-data-storage-data-tests.ts +673 -770
- package/src/tests/register-data-storage-parameter-tests.ts +245 -257
- package/src/tests/register-parameter-compacting-tests.ts +84 -92
- package/src/tests/register-sync-tests.ts +375 -391
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -39,18 +39,15 @@ bucket_definitions:
|
|
|
39
39
|
.watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })
|
|
40
40
|
[Symbol.asyncIterator]();
|
|
41
41
|
|
|
42
|
-
await bucketStorage.
|
|
43
|
-
|
|
44
|
-
});
|
|
42
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
43
|
+
await writer.markAllSnapshotDone('1/1');
|
|
45
44
|
|
|
46
45
|
const writeCheckpoint = await bucketStorage.createManagedWriteCheckpoint({
|
|
47
46
|
heads: { '1': '5/0' },
|
|
48
47
|
user_id: 'user1'
|
|
49
48
|
});
|
|
50
49
|
|
|
51
|
-
await
|
|
52
|
-
await batch.keepalive('5/0');
|
|
53
|
-
});
|
|
50
|
+
await writer.keepalive('5/0');
|
|
54
51
|
|
|
55
52
|
const result = await iter.next();
|
|
56
53
|
expect(result).toMatchObject({
|
|
@@ -82,9 +79,8 @@ bucket_definitions:
|
|
|
82
79
|
);
|
|
83
80
|
const bucketStorage = factory.getInstance(r.persisted_sync_rules!);
|
|
84
81
|
|
|
85
|
-
await bucketStorage.
|
|
86
|
-
|
|
87
|
-
});
|
|
82
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
83
|
+
await writer.markAllSnapshotDone('1/1');
|
|
88
84
|
|
|
89
85
|
const abortController = new AbortController();
|
|
90
86
|
context.onTestFinished(() => abortController.abort());
|
|
@@ -92,9 +88,7 @@ bucket_definitions:
|
|
|
92
88
|
.watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })
|
|
93
89
|
[Symbol.asyncIterator]();
|
|
94
90
|
|
|
95
|
-
await
|
|
96
|
-
await batch.keepalive('5/0');
|
|
97
|
-
});
|
|
91
|
+
await writer.keepalive('5/0');
|
|
98
92
|
|
|
99
93
|
const result = await iter.next();
|
|
100
94
|
expect(result).toMatchObject({
|
|
@@ -115,9 +109,7 @@ bucket_definitions:
|
|
|
115
109
|
// We have to trigger a new keepalive after the checkpoint, at least to cover postgres storage.
|
|
116
110
|
// This is what is effetively triggered with RouteAPI.createReplicationHead().
|
|
117
111
|
// MongoDB storage doesn't explicitly need this anymore.
|
|
118
|
-
await
|
|
119
|
-
await batch.keepalive('6/0');
|
|
120
|
-
});
|
|
112
|
+
await writer.keepalive('6/0');
|
|
121
113
|
|
|
122
114
|
let result2 = await iter.next();
|
|
123
115
|
if (result2.value?.base?.lsn == '5/0') {
|
|
@@ -154,9 +146,8 @@ bucket_definitions:
|
|
|
154
146
|
const bucketStorage = factory.getInstance(r.persisted_sync_rules!);
|
|
155
147
|
bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
|
|
156
148
|
|
|
157
|
-
await bucketStorage.
|
|
158
|
-
|
|
159
|
-
});
|
|
149
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
150
|
+
await writer.markAllSnapshotDone('1/1');
|
|
160
151
|
|
|
161
152
|
const abortController = new AbortController();
|
|
162
153
|
context.onTestFinished(() => abortController.abort());
|
|
@@ -164,14 +155,12 @@ bucket_definitions:
|
|
|
164
155
|
.watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })
|
|
165
156
|
[Symbol.asyncIterator]();
|
|
166
157
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
user_id: 'user1'
|
|
171
|
-
});
|
|
172
|
-
await batch.flush();
|
|
173
|
-
await batch.keepalive('5/0');
|
|
158
|
+
writer.addCustomWriteCheckpoint({
|
|
159
|
+
checkpoint: 5n,
|
|
160
|
+
user_id: 'user1'
|
|
174
161
|
});
|
|
162
|
+
await writer.flush();
|
|
163
|
+
await writer.keepalive('5/0');
|
|
175
164
|
|
|
176
165
|
const result = await iter.next();
|
|
177
166
|
expect(result).toMatchObject({
|
|
@@ -203,9 +192,8 @@ bucket_definitions:
|
|
|
203
192
|
const bucketStorage = factory.getInstance(r.persisted_sync_rules!);
|
|
204
193
|
bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
|
|
205
194
|
|
|
206
|
-
await bucketStorage.
|
|
207
|
-
|
|
208
|
-
});
|
|
195
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
196
|
+
await writer.markAllSnapshotDone('1/1');
|
|
209
197
|
|
|
210
198
|
const abortController = new AbortController();
|
|
211
199
|
context.onTestFinished(() => abortController.abort());
|
|
@@ -213,17 +201,15 @@ bucket_definitions:
|
|
|
213
201
|
.watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })
|
|
214
202
|
[Symbol.asyncIterator]();
|
|
215
203
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
await batch.flush();
|
|
204
|
+
// Flush to clear state
|
|
205
|
+
await writer.flush();
|
|
219
206
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
});
|
|
224
|
-
await batch.flush();
|
|
225
|
-
await batch.keepalive('5/0');
|
|
207
|
+
writer.addCustomWriteCheckpoint({
|
|
208
|
+
checkpoint: 5n,
|
|
209
|
+
user_id: 'user1'
|
|
226
210
|
});
|
|
211
|
+
await writer.flush();
|
|
212
|
+
await writer.keepalive('5/0');
|
|
227
213
|
|
|
228
214
|
const result = await iter.next();
|
|
229
215
|
expect(result).toMatchObject({
|
|
@@ -255,9 +241,8 @@ bucket_definitions:
|
|
|
255
241
|
const bucketStorage = factory.getInstance(r.persisted_sync_rules!);
|
|
256
242
|
bucketStorage.setWriteCheckpointMode(storage.WriteCheckpointMode.CUSTOM);
|
|
257
243
|
|
|
258
|
-
await bucketStorage.
|
|
259
|
-
|
|
260
|
-
});
|
|
244
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
245
|
+
await writer.markAllSnapshotDone('1/1');
|
|
261
246
|
|
|
262
247
|
const abortController = new AbortController();
|
|
263
248
|
context.onTestFinished(() => abortController.abort());
|
|
@@ -265,9 +250,7 @@ bucket_definitions:
|
|
|
265
250
|
.watchCheckpointChanges({ user_id: 'user1', signal: abortController.signal })
|
|
266
251
|
[Symbol.asyncIterator]();
|
|
267
252
|
|
|
268
|
-
await
|
|
269
|
-
await batch.keepalive('5/0');
|
|
270
|
-
});
|
|
253
|
+
await writer.keepalive('5/0');
|
|
271
254
|
|
|
272
255
|
const result = await iter.next();
|
|
273
256
|
expect(result).toMatchObject({
|
|
@@ -280,14 +263,12 @@ bucket_definitions:
|
|
|
280
263
|
}
|
|
281
264
|
});
|
|
282
265
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
user_id: 'user1'
|
|
287
|
-
});
|
|
288
|
-
await batch.flush();
|
|
289
|
-
await batch.keepalive('6/0');
|
|
266
|
+
writer.addCustomWriteCheckpoint({
|
|
267
|
+
checkpoint: 6n,
|
|
268
|
+
user_id: 'user1'
|
|
290
269
|
});
|
|
270
|
+
await writer.flush();
|
|
271
|
+
await writer.keepalive('6/0');
|
|
291
272
|
|
|
292
273
|
let result2 = await iter.next();
|
|
293
274
|
expect(result2).toMatchObject({
|
|
@@ -301,14 +282,12 @@ bucket_definitions:
|
|
|
301
282
|
}
|
|
302
283
|
});
|
|
303
284
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
user_id: 'user1'
|
|
308
|
-
});
|
|
309
|
-
await batch.flush();
|
|
310
|
-
await batch.keepalive('7/0');
|
|
285
|
+
writer.addCustomWriteCheckpoint({
|
|
286
|
+
checkpoint: 7n,
|
|
287
|
+
user_id: 'user1'
|
|
311
288
|
});
|
|
289
|
+
await writer.flush();
|
|
290
|
+
await writer.keepalive('7/0');
|
|
312
291
|
|
|
313
292
|
let result3 = await iter.next();
|
|
314
293
|
expect(result3).toMatchObject({
|