@powersync/service-core-tests 0.0.0-dev-20241219091224
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 +15 -0
- package/LICENSE +67 -0
- package/README.md +5 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/test-utils/bucket-validation.d.ts +42 -0
- package/dist/test-utils/bucket-validation.js +115 -0
- package/dist/test-utils/bucket-validation.js.map +1 -0
- package/dist/test-utils/general-utils.d.ts +31 -0
- package/dist/test-utils/general-utils.js +81 -0
- package/dist/test-utils/general-utils.js.map +1 -0
- package/dist/test-utils/stream_utils.d.ts +6 -0
- package/dist/test-utils/stream_utils.js +37 -0
- package/dist/test-utils/stream_utils.js.map +1 -0
- package/dist/test-utils/test-utils-index.d.ts +3 -0
- package/dist/test-utils/test-utils-index.js +4 -0
- package/dist/test-utils/test-utils-index.js.map +1 -0
- package/dist/tests/register-bucket-validation-tests.d.ts +10 -0
- package/dist/tests/register-bucket-validation-tests.js +139 -0
- package/dist/tests/register-bucket-validation-tests.js.map +1 -0
- package/dist/tests/register-compacting-tests.d.ts +14 -0
- package/dist/tests/register-compacting-tests.js +343 -0
- package/dist/tests/register-compacting-tests.js.map +1 -0
- package/dist/tests/register-data-storage-tests.d.ts +14 -0
- package/dist/tests/register-data-storage-tests.js +1571 -0
- package/dist/tests/register-data-storage-tests.js.map +1 -0
- package/dist/tests/register-sync-tests.d.ts +11 -0
- package/dist/tests/register-sync-tests.js +538 -0
- package/dist/tests/register-sync-tests.js.map +1 -0
- package/dist/tests/tests-index.d.ts +4 -0
- package/dist/tests/tests-index.js +5 -0
- package/dist/tests/tests-index.js.map +1 -0
- package/package.json +28 -0
- package/src/index.ts +5 -0
- package/src/test-utils/bucket-validation.ts +120 -0
- package/src/test-utils/general-utils.ts +113 -0
- package/src/test-utils/stream_utils.ts +42 -0
- package/src/test-utils/test-utils-index.ts +4 -0
- package/src/tests/register-bucket-validation-tests.ts +148 -0
- package/src/tests/register-compacting-tests.ts +297 -0
- package/src/tests/register-data-storage-tests.ts +1552 -0
- package/src/tests/register-sync-tests.ts +521 -0
- package/src/tests/tests-index.ts +4 -0
- package/tsconfig.json +34 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
53
|
+
import { storage } from '@powersync/service-core';
|
|
54
|
+
import { expect, test } from 'vitest';
|
|
55
|
+
import * as test_utils from '../test-utils/test-utils-index.js';
|
|
56
|
+
const TEST_TABLE = test_utils.makeTestTable('test', ['id']);
|
|
57
|
+
/**
|
|
58
|
+
* @example
|
|
59
|
+
* ```TypeScript
|
|
60
|
+
* // Test with the default options - large batch sizes
|
|
61
|
+
* describe('compacting buckets - default options', () => registerCompactTests(() => new MongoStorageFactory(), {}));
|
|
62
|
+
*
|
|
63
|
+
* // Also test with the miniumum batch sizes, forcing usage of multiple batches internally
|
|
64
|
+
* describe('compacting buckets - batched', () =>
|
|
65
|
+
* compactTests(() => new MongoStorageFactory(), { clearBatchLimit: 2, moveBatchLimit: 1, moveBatchQueryLimit: 1 }));
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export function registerCompactTests(generateStorageFactory, compactOptions) {
|
|
69
|
+
test('compacting (1)', async () => {
|
|
70
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
71
|
+
try {
|
|
72
|
+
const sync_rules = test_utils.testRules(`
|
|
73
|
+
bucket_definitions:
|
|
74
|
+
global:
|
|
75
|
+
data: [select * from test]
|
|
76
|
+
`);
|
|
77
|
+
const factory = __addDisposableResource(env_1, await generateStorageFactory(), false);
|
|
78
|
+
const bucketStorage = factory.getInstance(sync_rules);
|
|
79
|
+
const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
80
|
+
await batch.save({
|
|
81
|
+
sourceTable: TEST_TABLE,
|
|
82
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
83
|
+
after: {
|
|
84
|
+
id: 't1'
|
|
85
|
+
},
|
|
86
|
+
afterReplicaId: test_utils.rid('t1')
|
|
87
|
+
});
|
|
88
|
+
await batch.save({
|
|
89
|
+
sourceTable: TEST_TABLE,
|
|
90
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
91
|
+
after: {
|
|
92
|
+
id: 't2'
|
|
93
|
+
},
|
|
94
|
+
afterReplicaId: test_utils.rid('t2')
|
|
95
|
+
});
|
|
96
|
+
await batch.save({
|
|
97
|
+
sourceTable: TEST_TABLE,
|
|
98
|
+
tag: storage.SaveOperationTag.UPDATE,
|
|
99
|
+
after: {
|
|
100
|
+
id: 't2'
|
|
101
|
+
},
|
|
102
|
+
afterReplicaId: test_utils.rid('t2')
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
const checkpoint = result.flushed_op;
|
|
106
|
+
const batchBefore = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
|
|
107
|
+
const dataBefore = batchBefore.batch.data;
|
|
108
|
+
const checksumBefore = await bucketStorage.getChecksums(checkpoint, ['global[]']);
|
|
109
|
+
expect(dataBefore).toMatchObject([
|
|
110
|
+
{
|
|
111
|
+
checksum: 2634521662,
|
|
112
|
+
object_id: 't1',
|
|
113
|
+
op: 'PUT',
|
|
114
|
+
op_id: '1'
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
checksum: 4243212114,
|
|
118
|
+
object_id: 't2',
|
|
119
|
+
op: 'PUT',
|
|
120
|
+
op_id: '2'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
checksum: 4243212114,
|
|
124
|
+
object_id: 't2',
|
|
125
|
+
op: 'PUT',
|
|
126
|
+
op_id: '3'
|
|
127
|
+
}
|
|
128
|
+
]);
|
|
129
|
+
await bucketStorage.compact(compactOptions);
|
|
130
|
+
const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
|
|
131
|
+
const dataAfter = batchAfter.batch.data;
|
|
132
|
+
const checksumAfter = await bucketStorage.getChecksums(checkpoint, ['global[]']);
|
|
133
|
+
expect(batchAfter.targetOp).toEqual(3n);
|
|
134
|
+
expect(dataAfter).toMatchObject([
|
|
135
|
+
{
|
|
136
|
+
checksum: 2634521662,
|
|
137
|
+
object_id: 't1',
|
|
138
|
+
op: 'PUT',
|
|
139
|
+
op_id: '1'
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
checksum: 4243212114,
|
|
143
|
+
op: 'MOVE',
|
|
144
|
+
op_id: '2'
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
checksum: 4243212114,
|
|
148
|
+
object_id: 't2',
|
|
149
|
+
op: 'PUT',
|
|
150
|
+
op_id: '3'
|
|
151
|
+
}
|
|
152
|
+
]);
|
|
153
|
+
expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
|
|
154
|
+
test_utils.validateCompactedBucket(dataBefore, dataAfter);
|
|
155
|
+
}
|
|
156
|
+
catch (e_1) {
|
|
157
|
+
env_1.error = e_1;
|
|
158
|
+
env_1.hasError = true;
|
|
159
|
+
}
|
|
160
|
+
finally {
|
|
161
|
+
__disposeResources(env_1);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
test('compacting (2)', async () => {
|
|
165
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
166
|
+
try {
|
|
167
|
+
const sync_rules = test_utils.testRules(`
|
|
168
|
+
bucket_definitions:
|
|
169
|
+
global:
|
|
170
|
+
data: [select * from test]
|
|
171
|
+
`);
|
|
172
|
+
const factory = __addDisposableResource(env_2, await generateStorageFactory(), false);
|
|
173
|
+
const bucketStorage = factory.getInstance(sync_rules);
|
|
174
|
+
const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
175
|
+
await batch.save({
|
|
176
|
+
sourceTable: TEST_TABLE,
|
|
177
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
178
|
+
after: {
|
|
179
|
+
id: 't1'
|
|
180
|
+
},
|
|
181
|
+
afterReplicaId: test_utils.rid('t1')
|
|
182
|
+
});
|
|
183
|
+
await batch.save({
|
|
184
|
+
sourceTable: TEST_TABLE,
|
|
185
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
186
|
+
after: {
|
|
187
|
+
id: 't2'
|
|
188
|
+
},
|
|
189
|
+
afterReplicaId: test_utils.rid('t2')
|
|
190
|
+
});
|
|
191
|
+
await batch.save({
|
|
192
|
+
sourceTable: TEST_TABLE,
|
|
193
|
+
tag: storage.SaveOperationTag.DELETE,
|
|
194
|
+
before: {
|
|
195
|
+
id: 't1'
|
|
196
|
+
},
|
|
197
|
+
beforeReplicaId: test_utils.rid('t1')
|
|
198
|
+
});
|
|
199
|
+
await batch.save({
|
|
200
|
+
sourceTable: TEST_TABLE,
|
|
201
|
+
tag: storage.SaveOperationTag.UPDATE,
|
|
202
|
+
after: {
|
|
203
|
+
id: 't2'
|
|
204
|
+
},
|
|
205
|
+
afterReplicaId: test_utils.rid('t2')
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
const checkpoint = result.flushed_op;
|
|
209
|
+
const batchBefore = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
|
|
210
|
+
const dataBefore = batchBefore.batch.data;
|
|
211
|
+
const checksumBefore = await bucketStorage.getChecksums(checkpoint, ['global[]']);
|
|
212
|
+
expect(dataBefore).toMatchObject([
|
|
213
|
+
{
|
|
214
|
+
checksum: 2634521662,
|
|
215
|
+
object_id: 't1',
|
|
216
|
+
op: 'PUT',
|
|
217
|
+
op_id: '1'
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
checksum: 4243212114,
|
|
221
|
+
object_id: 't2',
|
|
222
|
+
op: 'PUT',
|
|
223
|
+
op_id: '2'
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
checksum: 4228978084,
|
|
227
|
+
object_id: 't1',
|
|
228
|
+
op: 'REMOVE',
|
|
229
|
+
op_id: '3'
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
checksum: 4243212114,
|
|
233
|
+
object_id: 't2',
|
|
234
|
+
op: 'PUT',
|
|
235
|
+
op_id: '4'
|
|
236
|
+
}
|
|
237
|
+
]);
|
|
238
|
+
await bucketStorage.compact(compactOptions);
|
|
239
|
+
const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
|
|
240
|
+
const dataAfter = batchAfter.batch.data;
|
|
241
|
+
const checksumAfter = await bucketStorage.getChecksums(checkpoint, ['global[]']);
|
|
242
|
+
expect(batchAfter.targetOp).toEqual(4n);
|
|
243
|
+
expect(dataAfter).toMatchObject([
|
|
244
|
+
{
|
|
245
|
+
checksum: -1778190028,
|
|
246
|
+
op: 'CLEAR',
|
|
247
|
+
op_id: '3'
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
checksum: 4243212114,
|
|
251
|
+
object_id: 't2',
|
|
252
|
+
op: 'PUT',
|
|
253
|
+
op_id: '4'
|
|
254
|
+
}
|
|
255
|
+
]);
|
|
256
|
+
expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
|
|
257
|
+
test_utils.validateCompactedBucket(dataBefore, dataAfter);
|
|
258
|
+
}
|
|
259
|
+
catch (e_2) {
|
|
260
|
+
env_2.error = e_2;
|
|
261
|
+
env_2.hasError = true;
|
|
262
|
+
}
|
|
263
|
+
finally {
|
|
264
|
+
__disposeResources(env_2);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
test('compacting (3)', async () => {
|
|
268
|
+
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
269
|
+
try {
|
|
270
|
+
const sync_rules = test_utils.testRules(`
|
|
271
|
+
bucket_definitions:
|
|
272
|
+
global:
|
|
273
|
+
data: [select * from test]
|
|
274
|
+
`);
|
|
275
|
+
const factory = __addDisposableResource(env_3, await generateStorageFactory(), false);
|
|
276
|
+
const bucketStorage = factory.getInstance(sync_rules);
|
|
277
|
+
const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
278
|
+
await batch.save({
|
|
279
|
+
sourceTable: TEST_TABLE,
|
|
280
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
281
|
+
after: {
|
|
282
|
+
id: 't1'
|
|
283
|
+
},
|
|
284
|
+
afterReplicaId: 't1'
|
|
285
|
+
});
|
|
286
|
+
await batch.save({
|
|
287
|
+
sourceTable: TEST_TABLE,
|
|
288
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
289
|
+
after: {
|
|
290
|
+
id: 't2'
|
|
291
|
+
},
|
|
292
|
+
afterReplicaId: 't2'
|
|
293
|
+
});
|
|
294
|
+
await batch.save({
|
|
295
|
+
sourceTable: TEST_TABLE,
|
|
296
|
+
tag: storage.SaveOperationTag.DELETE,
|
|
297
|
+
before: {
|
|
298
|
+
id: 't1'
|
|
299
|
+
},
|
|
300
|
+
beforeReplicaId: 't1'
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
const checkpoint1 = result.flushed_op;
|
|
304
|
+
const checksumBefore = await bucketStorage.getChecksums(checkpoint1, ['global[]']);
|
|
305
|
+
const result2 = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
306
|
+
await batch.save({
|
|
307
|
+
sourceTable: TEST_TABLE,
|
|
308
|
+
tag: storage.SaveOperationTag.DELETE,
|
|
309
|
+
before: {
|
|
310
|
+
id: 't2'
|
|
311
|
+
},
|
|
312
|
+
beforeReplicaId: 't2'
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
const checkpoint2 = result2.flushed_op;
|
|
316
|
+
await bucketStorage.compact(compactOptions);
|
|
317
|
+
const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint2, new Map([['global[]', '0']])));
|
|
318
|
+
const dataAfter = batchAfter.batch.data;
|
|
319
|
+
const checksumAfter = await bucketStorage.getChecksums(checkpoint2, ['global[]']);
|
|
320
|
+
expect(batchAfter.targetOp).toEqual(4n);
|
|
321
|
+
expect(dataAfter).toMatchObject([
|
|
322
|
+
{
|
|
323
|
+
checksum: 1874612650,
|
|
324
|
+
op: 'CLEAR',
|
|
325
|
+
op_id: '4'
|
|
326
|
+
}
|
|
327
|
+
]);
|
|
328
|
+
expect(checksumAfter.get('global[]')).toEqual({
|
|
329
|
+
bucket: 'global[]',
|
|
330
|
+
count: 1,
|
|
331
|
+
checksum: 1874612650
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch (e_3) {
|
|
335
|
+
env_3.error = e_3;
|
|
336
|
+
env_3.hasError = true;
|
|
337
|
+
}
|
|
338
|
+
finally {
|
|
339
|
+
__disposeResources(env_3);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=register-compacting-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-compacting-tests.js","sourceRoot":"","sources":["../../src/tests/register-compacting-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { storage } from '@powersync/service-core';
|
|
2
|
+
import * as test_utils from '../test-utils/test-utils-index.js';
|
|
3
|
+
export declare const TEST_TABLE: storage.SourceTable;
|
|
4
|
+
/**
|
|
5
|
+
* @example
|
|
6
|
+
* ```TypeScript
|
|
7
|
+
*
|
|
8
|
+
* describe('store - mongodb', function () {
|
|
9
|
+
* registerDataStorageTests(MONGO_STORAGE_FACTORY);
|
|
10
|
+
* });
|
|
11
|
+
*
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerDataStorageTests(generateStorageFactory: test_utils.StorageFactory): void;
|