@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.
Files changed (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +67 -0
  3. package/README.md +5 -0
  4. package/dist/index.d.ts +4 -0
  5. package/dist/index.js +5 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/test-utils/bucket-validation.d.ts +42 -0
  8. package/dist/test-utils/bucket-validation.js +115 -0
  9. package/dist/test-utils/bucket-validation.js.map +1 -0
  10. package/dist/test-utils/general-utils.d.ts +31 -0
  11. package/dist/test-utils/general-utils.js +81 -0
  12. package/dist/test-utils/general-utils.js.map +1 -0
  13. package/dist/test-utils/stream_utils.d.ts +6 -0
  14. package/dist/test-utils/stream_utils.js +37 -0
  15. package/dist/test-utils/stream_utils.js.map +1 -0
  16. package/dist/test-utils/test-utils-index.d.ts +3 -0
  17. package/dist/test-utils/test-utils-index.js +4 -0
  18. package/dist/test-utils/test-utils-index.js.map +1 -0
  19. package/dist/tests/register-bucket-validation-tests.d.ts +10 -0
  20. package/dist/tests/register-bucket-validation-tests.js +139 -0
  21. package/dist/tests/register-bucket-validation-tests.js.map +1 -0
  22. package/dist/tests/register-compacting-tests.d.ts +14 -0
  23. package/dist/tests/register-compacting-tests.js +343 -0
  24. package/dist/tests/register-compacting-tests.js.map +1 -0
  25. package/dist/tests/register-data-storage-tests.d.ts +14 -0
  26. package/dist/tests/register-data-storage-tests.js +1571 -0
  27. package/dist/tests/register-data-storage-tests.js.map +1 -0
  28. package/dist/tests/register-sync-tests.d.ts +11 -0
  29. package/dist/tests/register-sync-tests.js +538 -0
  30. package/dist/tests/register-sync-tests.js.map +1 -0
  31. package/dist/tests/tests-index.d.ts +4 -0
  32. package/dist/tests/tests-index.js +5 -0
  33. package/dist/tests/tests-index.js.map +1 -0
  34. package/package.json +28 -0
  35. package/src/index.ts +5 -0
  36. package/src/test-utils/bucket-validation.ts +120 -0
  37. package/src/test-utils/general-utils.ts +113 -0
  38. package/src/test-utils/stream_utils.ts +42 -0
  39. package/src/test-utils/test-utils-index.ts +4 -0
  40. package/src/tests/register-bucket-validation-tests.ts +148 -0
  41. package/src/tests/register-compacting-tests.ts +297 -0
  42. package/src/tests/register-data-storage-tests.ts +1552 -0
  43. package/src/tests/register-sync-tests.ts +521 -0
  44. package/src/tests/tests-index.ts +4 -0
  45. package/tsconfig.json +34 -0
  46. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-data-storage-tests.js","sourceRoot":"","sources":["../../src/tests/register-data-storage-tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as test_utils from '../test-utils/test-utils-index.js';
2
+ export declare const SYNC_SNAPSHOT_PATH: string;
3
+ /**
4
+ * @example
5
+ * ```TypeScript
6
+ * describe('sync - mongodb', function () {
7
+ * registerSyncTests(MONGO_STORAGE_FACTORY);
8
+ * });
9
+ * ```
10
+ */
11
+ export declare function registerSyncTests(factory: test_utils.StorageFactory): void;
@@ -0,0 +1,538 @@
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, sync } from '@powersync/service-core';
54
+ import { JSONBig } from '@powersync/service-jsonbig';
55
+ import { RequestParameters } from '@powersync/service-sync-rules';
56
+ import path from 'path';
57
+ import * as timers from 'timers/promises';
58
+ import { fileURLToPath } from 'url';
59
+ import { expect, test } from 'vitest';
60
+ import * as test_utils from '../test-utils/test-utils-index.js';
61
+ const __filename = fileURLToPath(import.meta.url);
62
+ const __dirname = path.dirname(__filename);
63
+ const TEST_TABLE = test_utils.makeTestTable('test', ['id']);
64
+ const BASIC_SYNC_RULES = `
65
+ bucket_definitions:
66
+ mybucket:
67
+ data:
68
+ - SELECT * FROM test
69
+ `;
70
+ export const SYNC_SNAPSHOT_PATH = path.resolve(__dirname, '../__snapshots/sync.test.js.snap');
71
+ /**
72
+ * @example
73
+ * ```TypeScript
74
+ * describe('sync - mongodb', function () {
75
+ * registerSyncTests(MONGO_STORAGE_FACTORY);
76
+ * });
77
+ * ```
78
+ */
79
+ export function registerSyncTests(factory) {
80
+ const tracker = new sync.RequestTracker();
81
+ test('sync global data', async () => {
82
+ const env_1 = { stack: [], error: void 0, hasError: false };
83
+ try {
84
+ const f = __addDisposableResource(env_1, await factory(), false);
85
+ const syncRules = await f.updateSyncRules({
86
+ content: BASIC_SYNC_RULES
87
+ });
88
+ const bucketStorage = f.getInstance(syncRules);
89
+ await bucketStorage.autoActivate();
90
+ const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
91
+ await batch.save({
92
+ sourceTable: TEST_TABLE,
93
+ tag: storage.SaveOperationTag.INSERT,
94
+ after: {
95
+ id: 't1',
96
+ description: 'Test 1'
97
+ },
98
+ afterReplicaId: 't1'
99
+ });
100
+ await batch.save({
101
+ sourceTable: TEST_TABLE,
102
+ tag: storage.SaveOperationTag.INSERT,
103
+ after: {
104
+ id: 't2',
105
+ description: 'Test 2'
106
+ },
107
+ afterReplicaId: 't2'
108
+ });
109
+ await batch.commit('0/1');
110
+ });
111
+ const stream = sync.streamResponse({
112
+ storage: f,
113
+ params: {
114
+ buckets: [],
115
+ include_checksum: true,
116
+ raw_data: true
117
+ },
118
+ parseOptions: test_utils.PARSE_OPTIONS,
119
+ tracker,
120
+ syncParams: new RequestParameters({ sub: '' }, {}),
121
+ token: { exp: Date.now() / 1000 + 10 }
122
+ });
123
+ const lines = await consumeCheckpointLines(stream);
124
+ expect(lines).toMatchSnapshot();
125
+ }
126
+ catch (e_1) {
127
+ env_1.error = e_1;
128
+ env_1.hasError = true;
129
+ }
130
+ finally {
131
+ __disposeResources(env_1);
132
+ }
133
+ });
134
+ test('sync legacy non-raw data', async () => {
135
+ const f = await factory();
136
+ const syncRules = await f.updateSyncRules({
137
+ content: BASIC_SYNC_RULES
138
+ });
139
+ const bucketStorage = await f.getInstance(syncRules);
140
+ await bucketStorage.autoActivate();
141
+ const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
142
+ await batch.save({
143
+ sourceTable: TEST_TABLE,
144
+ tag: storage.SaveOperationTag.INSERT,
145
+ after: {
146
+ id: 't1',
147
+ description: 'Test\n"string"',
148
+ large_num: 12345678901234567890n
149
+ },
150
+ afterReplicaId: 't1'
151
+ });
152
+ await batch.commit('0/1');
153
+ });
154
+ const stream = sync.streamResponse({
155
+ storage: f,
156
+ params: {
157
+ buckets: [],
158
+ include_checksum: true,
159
+ raw_data: false
160
+ },
161
+ parseOptions: test_utils.PARSE_OPTIONS,
162
+ tracker,
163
+ syncParams: new RequestParameters({ sub: '' }, {}),
164
+ token: { exp: Date.now() / 1000 + 10 }
165
+ });
166
+ const lines = await consumeCheckpointLines(stream);
167
+ expect(lines).toMatchSnapshot();
168
+ // Specifically check the number - this is the important part of the test
169
+ expect(lines[1].data.data[0].data.large_num).toEqual(12345678901234567890n);
170
+ });
171
+ test('expired token', async () => {
172
+ const f = await factory();
173
+ const syncRules = await f.updateSyncRules({
174
+ content: BASIC_SYNC_RULES
175
+ });
176
+ const storage = await f.getInstance(syncRules);
177
+ await storage.autoActivate();
178
+ const stream = sync.streamResponse({
179
+ storage: f,
180
+ params: {
181
+ buckets: [],
182
+ include_checksum: true,
183
+ raw_data: true
184
+ },
185
+ parseOptions: test_utils.PARSE_OPTIONS,
186
+ tracker,
187
+ syncParams: new RequestParameters({ sub: '' }, {}),
188
+ token: { exp: 0 }
189
+ });
190
+ const lines = await consumeCheckpointLines(stream);
191
+ expect(lines).toMatchSnapshot();
192
+ });
193
+ test('sync updates to global data', async () => {
194
+ const env_2 = { stack: [], error: void 0, hasError: false };
195
+ try {
196
+ const f = __addDisposableResource(env_2, await factory(), false);
197
+ const syncRules = await f.updateSyncRules({
198
+ content: BASIC_SYNC_RULES
199
+ });
200
+ const bucketStorage = await f.getInstance(syncRules);
201
+ await bucketStorage.autoActivate();
202
+ const stream = sync.streamResponse({
203
+ storage: f,
204
+ params: {
205
+ buckets: [],
206
+ include_checksum: true,
207
+ raw_data: true
208
+ },
209
+ parseOptions: test_utils.PARSE_OPTIONS,
210
+ tracker,
211
+ syncParams: new RequestParameters({ sub: '' }, {}),
212
+ token: { exp: Date.now() / 1000 + 10 }
213
+ });
214
+ const iter = stream[Symbol.asyncIterator]();
215
+ expect(await getCheckpointLines(iter)).toMatchSnapshot();
216
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
217
+ await batch.save({
218
+ sourceTable: TEST_TABLE,
219
+ tag: storage.SaveOperationTag.INSERT,
220
+ after: {
221
+ id: 't1',
222
+ description: 'Test 1'
223
+ },
224
+ afterReplicaId: 't1'
225
+ });
226
+ await batch.commit('0/1');
227
+ });
228
+ expect(await getCheckpointLines(iter)).toMatchSnapshot();
229
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
230
+ await batch.save({
231
+ sourceTable: TEST_TABLE,
232
+ tag: storage.SaveOperationTag.INSERT,
233
+ after: {
234
+ id: 't2',
235
+ description: 'Test 2'
236
+ },
237
+ afterReplicaId: 't2'
238
+ });
239
+ await batch.commit('0/2');
240
+ });
241
+ expect(await getCheckpointLines(iter)).toMatchSnapshot();
242
+ iter.return?.();
243
+ }
244
+ catch (e_2) {
245
+ env_2.error = e_2;
246
+ env_2.hasError = true;
247
+ }
248
+ finally {
249
+ __disposeResources(env_2);
250
+ }
251
+ });
252
+ test('expiring token', async () => {
253
+ const env_3 = { stack: [], error: void 0, hasError: false };
254
+ try {
255
+ const f = __addDisposableResource(env_3, await factory(), false);
256
+ const syncRules = await f.updateSyncRules({
257
+ content: BASIC_SYNC_RULES
258
+ });
259
+ const storage = await f.getInstance(syncRules);
260
+ await storage.autoActivate();
261
+ const exp = Date.now() / 1000 + 0.1;
262
+ const stream = sync.streamResponse({
263
+ storage: f,
264
+ params: {
265
+ buckets: [],
266
+ include_checksum: true,
267
+ raw_data: true
268
+ },
269
+ parseOptions: test_utils.PARSE_OPTIONS,
270
+ tracker,
271
+ syncParams: new RequestParameters({ sub: '' }, {}),
272
+ token: { exp: exp }
273
+ });
274
+ const iter = stream[Symbol.asyncIterator]();
275
+ const checkpoint = await getCheckpointLines(iter);
276
+ expect(checkpoint).toMatchSnapshot();
277
+ const expLines = await getCheckpointLines(iter);
278
+ expect(expLines).toMatchSnapshot();
279
+ }
280
+ catch (e_3) {
281
+ env_3.error = e_3;
282
+ env_3.hasError = true;
283
+ }
284
+ finally {
285
+ __disposeResources(env_3);
286
+ }
287
+ });
288
+ test('compacting data - invalidate checkpoint', async () => {
289
+ const env_4 = { stack: [], error: void 0, hasError: false };
290
+ try {
291
+ // This tests a case of a compact operation invalidating a checkpoint in the
292
+ // middle of syncing data.
293
+ // This is expected to be rare in practice, but it is important to handle
294
+ // this case correctly to maintain consistency on the client.
295
+ const f = __addDisposableResource(env_4, await factory(), false);
296
+ const syncRules = await f.updateSyncRules({
297
+ content: BASIC_SYNC_RULES
298
+ });
299
+ const bucketStorage = await f.getInstance(syncRules);
300
+ await bucketStorage.autoActivate();
301
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
302
+ await batch.save({
303
+ sourceTable: TEST_TABLE,
304
+ tag: storage.SaveOperationTag.INSERT,
305
+ after: {
306
+ id: 't1',
307
+ description: 'Test 1'
308
+ },
309
+ afterReplicaId: 't1'
310
+ });
311
+ await batch.save({
312
+ sourceTable: TEST_TABLE,
313
+ tag: storage.SaveOperationTag.INSERT,
314
+ after: {
315
+ id: 't2',
316
+ description: 'Test 2'
317
+ },
318
+ afterReplicaId: 't2'
319
+ });
320
+ await batch.commit('0/1');
321
+ });
322
+ const stream = sync.streamResponse({
323
+ storage: f,
324
+ params: {
325
+ buckets: [],
326
+ include_checksum: true,
327
+ raw_data: true
328
+ },
329
+ parseOptions: test_utils.PARSE_OPTIONS,
330
+ tracker,
331
+ syncParams: new RequestParameters({ sub: '' }, {}),
332
+ token: { exp: Date.now() / 1000 + 10 }
333
+ });
334
+ const iter = stream[Symbol.asyncIterator]();
335
+ // Only consume the first "checkpoint" message, and pause before receiving data.
336
+ const lines = await consumeIterator(iter, { consume: false, isDone: (line) => line?.checkpoint != null });
337
+ expect(lines).toMatchSnapshot();
338
+ expect(lines[0]).toEqual({
339
+ checkpoint: expect.objectContaining({
340
+ last_op_id: '2'
341
+ })
342
+ });
343
+ // Now we save additional data AND compact before continuing.
344
+ // This invalidates the checkpoint we've received above.
345
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
346
+ await batch.save({
347
+ sourceTable: TEST_TABLE,
348
+ tag: storage.SaveOperationTag.UPDATE,
349
+ after: {
350
+ id: 't1',
351
+ description: 'Test 1b'
352
+ },
353
+ afterReplicaId: 't1'
354
+ });
355
+ await batch.save({
356
+ sourceTable: TEST_TABLE,
357
+ tag: storage.SaveOperationTag.UPDATE,
358
+ after: {
359
+ id: 't2',
360
+ description: 'Test 2b'
361
+ },
362
+ afterReplicaId: 't2'
363
+ });
364
+ await batch.commit('0/2');
365
+ });
366
+ await bucketStorage.compact();
367
+ const lines2 = await getCheckpointLines(iter, { consume: true });
368
+ // Snapshot test checks for changes in general.
369
+ // The tests after that documents the specific things we're looking for
370
+ // in this test.
371
+ expect(lines2).toMatchSnapshot();
372
+ expect(lines2[0]).toEqual({
373
+ data: expect.objectContaining({
374
+ has_more: false,
375
+ data: [
376
+ // The first two ops have been replaced by a single CLEAR op
377
+ expect.objectContaining({
378
+ op: 'CLEAR'
379
+ })
380
+ ]
381
+ })
382
+ });
383
+ // Note: No checkpoint_complete here, since the checkpoint has been
384
+ // invalidated by the CLEAR op.
385
+ expect(lines2[1]).toEqual({
386
+ checkpoint_diff: expect.objectContaining({
387
+ last_op_id: '4'
388
+ })
389
+ });
390
+ expect(lines2[2]).toEqual({
391
+ data: expect.objectContaining({
392
+ has_more: false,
393
+ data: [
394
+ expect.objectContaining({
395
+ op: 'PUT'
396
+ }),
397
+ expect.objectContaining({
398
+ op: 'PUT'
399
+ })
400
+ ]
401
+ })
402
+ });
403
+ // Now we get a checkpoint_complete
404
+ expect(lines2[3]).toEqual({
405
+ checkpoint_complete: expect.objectContaining({
406
+ last_op_id: '4'
407
+ })
408
+ });
409
+ }
410
+ catch (e_4) {
411
+ env_4.error = e_4;
412
+ env_4.hasError = true;
413
+ }
414
+ finally {
415
+ __disposeResources(env_4);
416
+ }
417
+ });
418
+ test('write checkpoint', async () => {
419
+ const env_5 = { stack: [], error: void 0, hasError: false };
420
+ try {
421
+ const f = __addDisposableResource(env_5, await factory(), false);
422
+ const syncRules = await f.updateSyncRules({
423
+ content: BASIC_SYNC_RULES
424
+ });
425
+ const bucketStorage = f.getInstance(syncRules);
426
+ await bucketStorage.autoActivate();
427
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
428
+ // <= the managed write checkpoint LSN below
429
+ await batch.commit('0/1');
430
+ });
431
+ const checkpoint = await bucketStorage.createManagedWriteCheckpoint({
432
+ user_id: 'test',
433
+ heads: { '1': '1/0' }
434
+ });
435
+ const params = {
436
+ storage: f,
437
+ params: {
438
+ buckets: [],
439
+ include_checksum: true,
440
+ raw_data: true
441
+ },
442
+ parseOptions: test_utils.PARSE_OPTIONS,
443
+ tracker,
444
+ syncParams: new RequestParameters({ sub: 'test' }, {}),
445
+ token: { sub: 'test', exp: Date.now() / 1000 + 10 }
446
+ };
447
+ const stream1 = sync.streamResponse(params);
448
+ const lines1 = await consumeCheckpointLines(stream1);
449
+ // If write checkpoints are not correctly filtered, this may already
450
+ // contain the write checkpoint.
451
+ expect(lines1[0]).toMatchObject({
452
+ checkpoint: expect.objectContaining({
453
+ last_op_id: '0',
454
+ write_checkpoint: undefined
455
+ })
456
+ });
457
+ await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
458
+ // must be >= the managed write checkpoint LSN
459
+ await batch.commit('1/0');
460
+ });
461
+ // At this point the LSN has advanced, so the write checkpoint should be
462
+ // included in the next checkpoint message.
463
+ const stream2 = sync.streamResponse(params);
464
+ const lines2 = await consumeCheckpointLines(stream2);
465
+ expect(lines2[0]).toMatchObject({
466
+ checkpoint: expect.objectContaining({
467
+ last_op_id: '0',
468
+ write_checkpoint: `${checkpoint}`
469
+ })
470
+ });
471
+ }
472
+ catch (e_5) {
473
+ env_5.error = e_5;
474
+ env_5.hasError = true;
475
+ }
476
+ finally {
477
+ __disposeResources(env_5);
478
+ }
479
+ });
480
+ }
481
+ /**
482
+ * Get lines on an iterator until isDone(line) == true.
483
+ *
484
+ * Does not stop the iterator unless options.consume is true.
485
+ */
486
+ async function consumeIterator(iter, options) {
487
+ let lines = [];
488
+ try {
489
+ const controller = new AbortController();
490
+ const timeout = timers.setTimeout(1500, { value: null, done: 'timeout' }, { signal: controller.signal });
491
+ while (true) {
492
+ let { value, done } = await Promise.race([timeout, iter.next()]);
493
+ if (done == 'timeout') {
494
+ throw new Error('Timeout');
495
+ }
496
+ if (typeof value == 'string') {
497
+ value = JSONBig.parse(value);
498
+ }
499
+ if (value) {
500
+ lines.push(value);
501
+ }
502
+ if (done || options.isDone(value)) {
503
+ break;
504
+ }
505
+ }
506
+ controller.abort();
507
+ if (options?.consume) {
508
+ iter.return?.();
509
+ }
510
+ return lines;
511
+ }
512
+ catch (e) {
513
+ if (options?.consume) {
514
+ iter.throw?.(e);
515
+ }
516
+ throw e;
517
+ }
518
+ }
519
+ /**
520
+ * Get lines on an iterator until the next checkpoint_complete.
521
+ *
522
+ * Does not stop the iterator unless options.consume is true.
523
+ */
524
+ async function getCheckpointLines(iter, options) {
525
+ return consumeIterator(iter, {
526
+ consume: options?.consume,
527
+ isDone: (line) => line?.checkpoint_complete
528
+ });
529
+ }
530
+ /**
531
+ * Get lines on an iterator until the next checkpoint_complete.
532
+ *
533
+ * Stops the iterator afterwards.
534
+ */
535
+ async function consumeCheckpointLines(iterable) {
536
+ return getCheckpointLines(iterable[Symbol.asyncIterator](), { consume: true });
537
+ }
538
+ //# sourceMappingURL=register-sync-tests.js.map