@powersync/service-core-tests 0.0.0-dev-20250310210938 → 0.0.0-dev-20250312112247

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.
@@ -1,5 +1,5 @@
1
1
  import { getUuidReplicaIdentityBson, OplogEntry, storage } from '@powersync/service-core';
2
- import { RequestParameters } from '@powersync/service-sync-rules';
2
+ import { ParameterLookup, RequestParameters } from '@powersync/service-sync-rules';
3
3
  import { expect, test } from 'vitest';
4
4
  import * as test_utils from '../test-utils/test-utils-index.js';
5
5
 
@@ -65,7 +65,9 @@ bucket_definitions:
65
65
  });
66
66
  });
67
67
 
68
- const parameters = await bucketStorage.getParameterSets(result!.flushed_op, [['mybucket', '1', 'user1']]);
68
+ const parameters = await bucketStorage.getParameterSets(result!.flushed_op, [
69
+ ParameterLookup.normalized('mybucket', '1', ['user1'])
70
+ ]);
69
71
  expect(parameters).toEqual([
70
72
  {
71
73
  group_id: 'group1a'
@@ -110,7 +112,9 @@ bucket_definitions:
110
112
  });
111
113
  });
112
114
 
113
- const parameters = await bucketStorage.getParameterSets(result2!.flushed_op, [['mybucket', '1', 'user1']]);
115
+ const parameters = await bucketStorage.getParameterSets(result2!.flushed_op, [
116
+ ParameterLookup.normalized('mybucket', '1', ['user1'])
117
+ ]);
114
118
  expect(parameters).toEqual([
115
119
  {
116
120
  group_id: 'group2'
@@ -118,7 +122,9 @@ bucket_definitions:
118
122
  ]);
119
123
 
120
124
  // Use the checkpoint to get older data if relevant
121
- const parameters2 = await bucketStorage.getParameterSets(result1!.flushed_op, [['mybucket', '1', 'user1']]);
125
+ const parameters2 = await bucketStorage.getParameterSets(result1!.flushed_op, [
126
+ ParameterLookup.normalized('mybucket', '1', ['user1'])
127
+ ]);
122
128
  expect(parameters2).toEqual([
123
129
  {
124
130
  group_id: 'group1'
@@ -183,8 +189,8 @@ bucket_definitions:
183
189
  // There removal operation for the association of `list2`::`todo2` should not interfere with the new
184
190
  // association of `list1`::`todo2`
185
191
  const parameters = await bucketStorage.getParameterSets(result2!.flushed_op, [
186
- ['mybucket', '1', 'list1'],
187
- ['mybucket', '1', 'list2']
192
+ ParameterLookup.normalized('mybucket', '1', ['list1']),
193
+ ParameterLookup.normalized('mybucket', '1', ['list2'])
188
194
  ]);
189
195
 
190
196
  expect(parameters.sort((a, b) => (a.todo_id as string).localeCompare(b.todo_id as string))).toEqual([
@@ -230,11 +236,17 @@ bucket_definitions:
230
236
 
231
237
  const checkpoint = result!.flushed_op;
232
238
 
233
- const parameters1 = await bucketStorage.getParameterSets(checkpoint, [['mybucket', '1', 314n, 314, 3.14]]);
239
+ const parameters1 = await bucketStorage.getParameterSets(checkpoint, [
240
+ ParameterLookup.normalized('mybucket', '1', [314n, 314, 3.14])
241
+ ]);
234
242
  expect(parameters1).toEqual([TEST_PARAMS]);
235
- const parameters2 = await bucketStorage.getParameterSets(checkpoint, [['mybucket', '1', 314, 314n, 3.14]]);
243
+ const parameters2 = await bucketStorage.getParameterSets(checkpoint, [
244
+ ParameterLookup.normalized('mybucket', '1', [314, 314n, 3.14])
245
+ ]);
236
246
  expect(parameters2).toEqual([TEST_PARAMS]);
237
- const parameters3 = await bucketStorage.getParameterSets(checkpoint, [['mybucket', '1', 314n, 314, 3]]);
247
+ const parameters3 = await bucketStorage.getParameterSets(checkpoint, [
248
+ ParameterLookup.normalized('mybucket', '1', [314n, 314, 3])
249
+ ]);
238
250
  expect(parameters3).toEqual([]);
239
251
  });
240
252
 
@@ -286,7 +298,9 @@ bucket_definitions:
286
298
 
287
299
  const checkpoint = result!.flushed_op;
288
300
 
289
- const parameters1 = await bucketStorage.getParameterSets(checkpoint, [['mybucket', '1', 1152921504606846976n]]);
301
+ const parameters1 = await bucketStorage.getParameterSets(checkpoint, [
302
+ ParameterLookup.normalized('mybucket', '1', [1152921504606846976n])
303
+ ]);
290
304
  expect(parameters1).toEqual([TEST_PARAMS]);
291
305
  });
292
306
 
@@ -387,7 +401,7 @@ bucket_definitions:
387
401
  const q1 = sync_rules.bucket_descriptors[0].parameter_queries[0];
388
402
 
389
403
  const lookups = q1.getLookups(parameters);
390
- expect(lookups).toEqual([['by_workspace', '1', 'u1']]);
404
+ expect(lookups).toEqual([ParameterLookup.normalized('by_workspace', '1', ['u1'])]);
391
405
 
392
406
  const parameter_sets = await bucketStorage.getParameterSets(checkpoint, lookups);
393
407
  expect(parameter_sets).toEqual([{ workspace_id: 'workspace1' }]);
@@ -457,7 +471,7 @@ bucket_definitions:
457
471
  const q1 = sync_rules.bucket_descriptors[0].parameter_queries[0];
458
472
 
459
473
  const lookups = q1.getLookups(parameters);
460
- expect(lookups).toEqual([['by_public_workspace', '1']]);
474
+ expect(lookups).toEqual([ParameterLookup.normalized('by_public_workspace', '1', [])]);
461
475
 
462
476
  const parameter_sets = await bucketStorage.getParameterSets(checkpoint, lookups);
463
477
  parameter_sets.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
@@ -546,7 +560,7 @@ bucket_definitions:
546
560
  // Test intermediate values - could be moved to sync_rules.test.ts
547
561
  const q1 = sync_rules.bucket_descriptors[0].parameter_queries[0];
548
562
  const lookups1 = q1.getLookups(parameters);
549
- expect(lookups1).toEqual([['by_workspace', '1']]);
563
+ expect(lookups1).toEqual([ParameterLookup.normalized('by_workspace', '1', [])]);
550
564
 
551
565
  const parameter_sets1 = await bucketStorage.getParameterSets(checkpoint, lookups1);
552
566
  parameter_sets1.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
@@ -554,7 +568,7 @@ bucket_definitions:
554
568
 
555
569
  const q2 = sync_rules.bucket_descriptors[0].parameter_queries[1];
556
570
  const lookups2 = q2.getLookups(parameters);
557
- expect(lookups2).toEqual([['by_workspace', '2', 'u1']]);
571
+ expect(lookups2).toEqual([ParameterLookup.normalized('by_workspace', '2', ['u1'])]);
558
572
 
559
573
  const parameter_sets2 = await bucketStorage.getParameterSets(checkpoint, lookups2);
560
574
  parameter_sets2.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
@@ -861,7 +875,9 @@ bucket_definitions:
861
875
 
862
876
  const { checkpoint } = await bucketStorage.getCheckpoint();
863
877
 
864
- const parameters = await bucketStorage.getParameterSets(checkpoint, [['mybucket', '1', 'user1']]);
878
+ const parameters = await bucketStorage.getParameterSets(checkpoint, [
879
+ ParameterLookup.normalized('mybucket', '1', ['user1'])
880
+ ]);
865
881
  expect(parameters).toEqual([]);
866
882
  });
867
883
 
@@ -1,4 +1,4 @@
1
- import { createCoreAPIMetrics, storage, sync, utils } from '@powersync/service-core';
1
+ import { storage, sync, utils } from '@powersync/service-core';
2
2
  import { JSONBig } from '@powersync/service-jsonbig';
3
3
  import { RequestParameters } from '@powersync/service-sync-rules';
4
4
  import path from 'path';
@@ -6,7 +6,6 @@ import * as timers from 'timers/promises';
6
6
  import { fileURLToPath } from 'url';
7
7
  import { expect, test } from 'vitest';
8
8
  import * as test_utils from '../test-utils/test-utils-index.js';
9
- import { METRICS_HELPER } from '../test-utils/test-utils-index.js';
10
9
 
11
10
  const __filename = fileURLToPath(import.meta.url);
12
11
  const __dirname = path.dirname(__filename);
@@ -31,8 +30,7 @@ export const SYNC_SNAPSHOT_PATH = path.resolve(__dirname, '../__snapshots/sync.t
31
30
  * ```
32
31
  */
33
32
  export function registerSyncTests(factory: storage.TestStorageFactory) {
34
- createCoreAPIMetrics(METRICS_HELPER.metricsEngine);
35
- const tracker = new sync.RequestTracker(METRICS_HELPER.metricsEngine);
33
+ const tracker = new sync.RequestTracker();
36
34
  const syncContext = new sync.SyncContext({
37
35
  maxBuckets: 10,
38
36
  maxParameterQueryResults: 10,