@powersync/service-core-tests 0.0.0-dev-20250317113118 → 0.0.0-dev-20250325131118
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 +20 -5
- package/dist/test-utils/MetricsHelper.d.ts +12 -0
- package/dist/test-utils/MetricsHelper.js +42 -0
- package/dist/test-utils/MetricsHelper.js.map +1 -0
- package/dist/test-utils/general-utils.d.ts +1 -1
- package/dist/test-utils/general-utils.js +3 -3
- package/dist/test-utils/general-utils.js.map +1 -1
- package/dist/test-utils/test-utils-index.d.ts +1 -1
- package/dist/test-utils/test-utils-index.js +1 -1
- package/dist/tests/register-data-storage-tests.js +254 -0
- package/dist/tests/register-data-storage-tests.js.map +1 -1
- package/dist/tests/register-sync-tests.js +250 -28
- package/dist/tests/register-sync-tests.js.map +1 -1
- package/package.json +5 -4
- package/src/test-utils/MetricsHelper.ts +54 -0
- package/src/test-utils/general-utils.ts +3 -3
- package/src/test-utils/test-utils-index.ts +1 -1
- package/src/tests/register-data-storage-tests.ts +234 -0
- package/src/tests/register-sync-tests.ts +234 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/test-utils/metrics-utils.d.ts +0 -2
- package/dist/test-utils/metrics-utils.js +0 -13
- package/dist/test-utils/metrics-utils.js.map +0 -1
- package/src/test-utils/metrics-utils.ts +0 -14
|
@@ -50,7 +50,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
50
50
|
var e = new Error(message);
|
|
51
51
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
52
|
});
|
|
53
|
-
import { storage, sync } from '@powersync/service-core';
|
|
53
|
+
import { createCoreAPIMetrics, storage, sync } from '@powersync/service-core';
|
|
54
54
|
import { JSONBig } from '@powersync/service-jsonbig';
|
|
55
55
|
import { RequestParameters } from '@powersync/service-sync-rules';
|
|
56
56
|
import path from 'path';
|
|
@@ -58,6 +58,7 @@ import * as timers from 'timers/promises';
|
|
|
58
58
|
import { fileURLToPath } from 'url';
|
|
59
59
|
import { expect, test } from 'vitest';
|
|
60
60
|
import * as test_utils from '../test-utils/test-utils-index.js';
|
|
61
|
+
import { METRICS_HELPER } from '../test-utils/test-utils-index.js';
|
|
61
62
|
const __filename = fileURLToPath(import.meta.url);
|
|
62
63
|
const __dirname = path.dirname(__filename);
|
|
63
64
|
const TEST_TABLE = test_utils.makeTestTable('test', ['id']);
|
|
@@ -77,7 +78,8 @@ export const SYNC_SNAPSHOT_PATH = path.resolve(__dirname, '../__snapshots/sync.t
|
|
|
77
78
|
* ```
|
|
78
79
|
*/
|
|
79
80
|
export function registerSyncTests(factory) {
|
|
80
|
-
|
|
81
|
+
createCoreAPIMetrics(METRICS_HELPER.metricsEngine);
|
|
82
|
+
const tracker = new sync.RequestTracker(METRICS_HELPER.metricsEngine);
|
|
81
83
|
const syncContext = new sync.SyncContext({
|
|
82
84
|
maxBuckets: 10,
|
|
83
85
|
maxParameterQueryResults: 10,
|
|
@@ -458,7 +460,7 @@ bucket_definitions:
|
|
|
458
460
|
await result_5;
|
|
459
461
|
}
|
|
460
462
|
});
|
|
461
|
-
test('sync updates to global data', async () => {
|
|
463
|
+
test('sync updates to global data', async (context) => {
|
|
462
464
|
const env_6 = { stack: [], error: void 0, hasError: false };
|
|
463
465
|
try {
|
|
464
466
|
const f = __addDisposableResource(env_6, await factory(), true);
|
|
@@ -481,6 +483,9 @@ bucket_definitions:
|
|
|
481
483
|
token: { exp: Date.now() / 1000 + 10 }
|
|
482
484
|
});
|
|
483
485
|
const iter = stream[Symbol.asyncIterator]();
|
|
486
|
+
context.onTestFinished(() => {
|
|
487
|
+
iter.return?.();
|
|
488
|
+
});
|
|
484
489
|
expect(await getCheckpointLines(iter)).toMatchSnapshot();
|
|
485
490
|
await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
486
491
|
await batch.save({
|
|
@@ -508,7 +513,6 @@ bucket_definitions:
|
|
|
508
513
|
await batch.commit('0/2');
|
|
509
514
|
});
|
|
510
515
|
expect(await getCheckpointLines(iter)).toMatchSnapshot();
|
|
511
|
-
iter.return?.();
|
|
512
516
|
}
|
|
513
517
|
catch (e_6) {
|
|
514
518
|
env_6.error = e_6;
|
|
@@ -520,10 +524,222 @@ bucket_definitions:
|
|
|
520
524
|
await result_6;
|
|
521
525
|
}
|
|
522
526
|
});
|
|
523
|
-
test('
|
|
527
|
+
test('sync updates to parameter query only', async (context) => {
|
|
524
528
|
const env_7 = { stack: [], error: void 0, hasError: false };
|
|
525
529
|
try {
|
|
526
530
|
const f = __addDisposableResource(env_7, await factory(), true);
|
|
531
|
+
const syncRules = await f.updateSyncRules({
|
|
532
|
+
content: `bucket_definitions:
|
|
533
|
+
by_user:
|
|
534
|
+
parameters: select users.id as user_id from users where users.id = request.user_id()
|
|
535
|
+
data:
|
|
536
|
+
- select * from lists where user_id = bucket.user_id
|
|
537
|
+
`
|
|
538
|
+
});
|
|
539
|
+
const usersTable = test_utils.makeTestTable('users', ['id']);
|
|
540
|
+
const listsTable = test_utils.makeTestTable('lists', ['id']);
|
|
541
|
+
const bucketStorage = await f.getInstance(syncRules);
|
|
542
|
+
await bucketStorage.autoActivate();
|
|
543
|
+
const stream = sync.streamResponse({
|
|
544
|
+
syncContext,
|
|
545
|
+
bucketStorage,
|
|
546
|
+
syncRules: bucketStorage.getParsedSyncRules(test_utils.PARSE_OPTIONS),
|
|
547
|
+
params: {
|
|
548
|
+
buckets: [],
|
|
549
|
+
include_checksum: true,
|
|
550
|
+
raw_data: true
|
|
551
|
+
},
|
|
552
|
+
tracker,
|
|
553
|
+
syncParams: new RequestParameters({ sub: 'user1' }, {}),
|
|
554
|
+
token: { exp: Date.now() / 1000 + 100 }
|
|
555
|
+
});
|
|
556
|
+
const iter = stream[Symbol.asyncIterator]();
|
|
557
|
+
context.onTestFinished(() => {
|
|
558
|
+
iter.return?.();
|
|
559
|
+
});
|
|
560
|
+
// Initial empty checkpoint
|
|
561
|
+
const checkpoint1 = await getCheckpointLines(iter);
|
|
562
|
+
expect(checkpoint1[0].checkpoint?.buckets?.map((b) => b.bucket)).toEqual([]);
|
|
563
|
+
expect(checkpoint1).toMatchSnapshot();
|
|
564
|
+
// Add user
|
|
565
|
+
await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
566
|
+
await batch.save({
|
|
567
|
+
sourceTable: usersTable,
|
|
568
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
569
|
+
after: {
|
|
570
|
+
id: 'user1',
|
|
571
|
+
name: 'User 1'
|
|
572
|
+
},
|
|
573
|
+
afterReplicaId: 'user1'
|
|
574
|
+
});
|
|
575
|
+
await batch.commit('0/1');
|
|
576
|
+
});
|
|
577
|
+
const checkpoint2 = await getCheckpointLines(iter);
|
|
578
|
+
expect(checkpoint2[0].checkpoint_diff?.updated_buckets?.map((b) => b.bucket)).toEqual(['by_user["user1"]']);
|
|
579
|
+
expect(checkpoint2).toMatchSnapshot();
|
|
580
|
+
}
|
|
581
|
+
catch (e_7) {
|
|
582
|
+
env_7.error = e_7;
|
|
583
|
+
env_7.hasError = true;
|
|
584
|
+
}
|
|
585
|
+
finally {
|
|
586
|
+
const result_7 = __disposeResources(env_7);
|
|
587
|
+
if (result_7)
|
|
588
|
+
await result_7;
|
|
589
|
+
}
|
|
590
|
+
});
|
|
591
|
+
test('sync updates to data query only', async (context) => {
|
|
592
|
+
const env_8 = { stack: [], error: void 0, hasError: false };
|
|
593
|
+
try {
|
|
594
|
+
const f = __addDisposableResource(env_8, await factory(), true);
|
|
595
|
+
const syncRules = await f.updateSyncRules({
|
|
596
|
+
content: `bucket_definitions:
|
|
597
|
+
by_user:
|
|
598
|
+
parameters: select users.id as user_id from users where users.id = request.user_id()
|
|
599
|
+
data:
|
|
600
|
+
- select * from lists where user_id = bucket.user_id
|
|
601
|
+
`
|
|
602
|
+
});
|
|
603
|
+
const usersTable = test_utils.makeTestTable('users', ['id']);
|
|
604
|
+
const listsTable = test_utils.makeTestTable('lists', ['id']);
|
|
605
|
+
const bucketStorage = await f.getInstance(syncRules);
|
|
606
|
+
await bucketStorage.autoActivate();
|
|
607
|
+
await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
608
|
+
await batch.save({
|
|
609
|
+
sourceTable: usersTable,
|
|
610
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
611
|
+
after: {
|
|
612
|
+
id: 'user1',
|
|
613
|
+
name: 'User 1'
|
|
614
|
+
},
|
|
615
|
+
afterReplicaId: 'user1'
|
|
616
|
+
});
|
|
617
|
+
await batch.commit('0/1');
|
|
618
|
+
});
|
|
619
|
+
const stream = sync.streamResponse({
|
|
620
|
+
syncContext,
|
|
621
|
+
bucketStorage,
|
|
622
|
+
syncRules: bucketStorage.getParsedSyncRules(test_utils.PARSE_OPTIONS),
|
|
623
|
+
params: {
|
|
624
|
+
buckets: [],
|
|
625
|
+
include_checksum: true,
|
|
626
|
+
raw_data: true
|
|
627
|
+
},
|
|
628
|
+
tracker,
|
|
629
|
+
syncParams: new RequestParameters({ sub: 'user1' }, {}),
|
|
630
|
+
token: { exp: Date.now() / 1000 + 100 }
|
|
631
|
+
});
|
|
632
|
+
const iter = stream[Symbol.asyncIterator]();
|
|
633
|
+
context.onTestFinished(() => {
|
|
634
|
+
iter.return?.();
|
|
635
|
+
});
|
|
636
|
+
const checkpoint1 = await getCheckpointLines(iter);
|
|
637
|
+
expect(checkpoint1[0].checkpoint?.buckets?.map((b) => b.bucket)).toEqual([
|
|
638
|
+
'by_user["user1"]'
|
|
639
|
+
]);
|
|
640
|
+
expect(checkpoint1).toMatchSnapshot();
|
|
641
|
+
await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
642
|
+
await batch.save({
|
|
643
|
+
sourceTable: listsTable,
|
|
644
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
645
|
+
after: {
|
|
646
|
+
id: 'list1',
|
|
647
|
+
user_id: 'user1',
|
|
648
|
+
name: 'User 1'
|
|
649
|
+
},
|
|
650
|
+
afterReplicaId: 'list1'
|
|
651
|
+
});
|
|
652
|
+
await batch.commit('0/1');
|
|
653
|
+
});
|
|
654
|
+
const checkpoint2 = await getCheckpointLines(iter);
|
|
655
|
+
expect(checkpoint2[0].checkpoint_diff?.updated_buckets?.map((b) => b.bucket)).toEqual(['by_user["user1"]']);
|
|
656
|
+
expect(checkpoint2).toMatchSnapshot();
|
|
657
|
+
}
|
|
658
|
+
catch (e_8) {
|
|
659
|
+
env_8.error = e_8;
|
|
660
|
+
env_8.hasError = true;
|
|
661
|
+
}
|
|
662
|
+
finally {
|
|
663
|
+
const result_8 = __disposeResources(env_8);
|
|
664
|
+
if (result_8)
|
|
665
|
+
await result_8;
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
test('sync updates to parameter query + data', async (context) => {
|
|
669
|
+
const env_9 = { stack: [], error: void 0, hasError: false };
|
|
670
|
+
try {
|
|
671
|
+
const f = __addDisposableResource(env_9, await factory(), true);
|
|
672
|
+
const syncRules = await f.updateSyncRules({
|
|
673
|
+
content: `bucket_definitions:
|
|
674
|
+
by_user:
|
|
675
|
+
parameters: select users.id as user_id from users where users.id = request.user_id()
|
|
676
|
+
data:
|
|
677
|
+
- select * from lists where user_id = bucket.user_id
|
|
678
|
+
`
|
|
679
|
+
});
|
|
680
|
+
const usersTable = test_utils.makeTestTable('users', ['id']);
|
|
681
|
+
const listsTable = test_utils.makeTestTable('lists', ['id']);
|
|
682
|
+
const bucketStorage = await f.getInstance(syncRules);
|
|
683
|
+
await bucketStorage.autoActivate();
|
|
684
|
+
const stream = sync.streamResponse({
|
|
685
|
+
syncContext,
|
|
686
|
+
bucketStorage,
|
|
687
|
+
syncRules: bucketStorage.getParsedSyncRules(test_utils.PARSE_OPTIONS),
|
|
688
|
+
params: {
|
|
689
|
+
buckets: [],
|
|
690
|
+
include_checksum: true,
|
|
691
|
+
raw_data: true
|
|
692
|
+
},
|
|
693
|
+
tracker,
|
|
694
|
+
syncParams: new RequestParameters({ sub: 'user1' }, {}),
|
|
695
|
+
token: { exp: Date.now() / 1000 + 100 }
|
|
696
|
+
});
|
|
697
|
+
const iter = stream[Symbol.asyncIterator]();
|
|
698
|
+
context.onTestFinished(() => {
|
|
699
|
+
iter.return?.();
|
|
700
|
+
});
|
|
701
|
+
// Initial empty checkpoint
|
|
702
|
+
expect(await getCheckpointLines(iter)).toMatchSnapshot();
|
|
703
|
+
await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
704
|
+
await batch.save({
|
|
705
|
+
sourceTable: listsTable,
|
|
706
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
707
|
+
after: {
|
|
708
|
+
id: 'list1',
|
|
709
|
+
user_id: 'user1',
|
|
710
|
+
name: 'User 1'
|
|
711
|
+
},
|
|
712
|
+
afterReplicaId: 'list1'
|
|
713
|
+
});
|
|
714
|
+
await batch.save({
|
|
715
|
+
sourceTable: usersTable,
|
|
716
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
717
|
+
after: {
|
|
718
|
+
id: 'user1',
|
|
719
|
+
name: 'User 1'
|
|
720
|
+
},
|
|
721
|
+
afterReplicaId: 'user1'
|
|
722
|
+
});
|
|
723
|
+
await batch.commit('0/1');
|
|
724
|
+
});
|
|
725
|
+
const checkpoint2 = await getCheckpointLines(iter);
|
|
726
|
+
expect(checkpoint2[0].checkpoint_diff?.updated_buckets?.map((b) => b.bucket)).toEqual(['by_user["user1"]']);
|
|
727
|
+
expect(checkpoint2).toMatchSnapshot();
|
|
728
|
+
}
|
|
729
|
+
catch (e_9) {
|
|
730
|
+
env_9.error = e_9;
|
|
731
|
+
env_9.hasError = true;
|
|
732
|
+
}
|
|
733
|
+
finally {
|
|
734
|
+
const result_9 = __disposeResources(env_9);
|
|
735
|
+
if (result_9)
|
|
736
|
+
await result_9;
|
|
737
|
+
}
|
|
738
|
+
});
|
|
739
|
+
test('expiring token', async (context) => {
|
|
740
|
+
const env_10 = { stack: [], error: void 0, hasError: false };
|
|
741
|
+
try {
|
|
742
|
+
const f = __addDisposableResource(env_10, await factory(), true);
|
|
527
743
|
const syncRules = await f.updateSyncRules({
|
|
528
744
|
content: BASIC_SYNC_RULES
|
|
529
745
|
});
|
|
@@ -544,29 +760,32 @@ bucket_definitions:
|
|
|
544
760
|
token: { exp: exp }
|
|
545
761
|
});
|
|
546
762
|
const iter = stream[Symbol.asyncIterator]();
|
|
763
|
+
context.onTestFinished(() => {
|
|
764
|
+
iter.return?.();
|
|
765
|
+
});
|
|
547
766
|
const checkpoint = await getCheckpointLines(iter);
|
|
548
767
|
expect(checkpoint).toMatchSnapshot();
|
|
549
768
|
const expLines = await getCheckpointLines(iter);
|
|
550
769
|
expect(expLines).toMatchSnapshot();
|
|
551
770
|
}
|
|
552
|
-
catch (
|
|
553
|
-
|
|
554
|
-
|
|
771
|
+
catch (e_10) {
|
|
772
|
+
env_10.error = e_10;
|
|
773
|
+
env_10.hasError = true;
|
|
555
774
|
}
|
|
556
775
|
finally {
|
|
557
|
-
const
|
|
558
|
-
if (
|
|
559
|
-
await
|
|
776
|
+
const result_10 = __disposeResources(env_10);
|
|
777
|
+
if (result_10)
|
|
778
|
+
await result_10;
|
|
560
779
|
}
|
|
561
780
|
});
|
|
562
|
-
test('compacting data - invalidate checkpoint', async () => {
|
|
563
|
-
const
|
|
781
|
+
test('compacting data - invalidate checkpoint', async (context) => {
|
|
782
|
+
const env_11 = { stack: [], error: void 0, hasError: false };
|
|
564
783
|
try {
|
|
565
784
|
// This tests a case of a compact operation invalidating a checkpoint in the
|
|
566
785
|
// middle of syncing data.
|
|
567
786
|
// This is expected to be rare in practice, but it is important to handle
|
|
568
787
|
// this case correctly to maintain consistency on the client.
|
|
569
|
-
const f = __addDisposableResource(
|
|
788
|
+
const f = __addDisposableResource(env_11, await factory(), true);
|
|
570
789
|
const syncRules = await f.updateSyncRules({
|
|
571
790
|
content: BASIC_SYNC_RULES
|
|
572
791
|
});
|
|
@@ -607,6 +826,9 @@ bucket_definitions:
|
|
|
607
826
|
token: { exp: Date.now() / 1000 + 10 }
|
|
608
827
|
});
|
|
609
828
|
const iter = stream[Symbol.asyncIterator]();
|
|
829
|
+
context.onTestFinished(() => {
|
|
830
|
+
iter.return?.();
|
|
831
|
+
});
|
|
610
832
|
// Only consume the first "checkpoint" message, and pause before receiving data.
|
|
611
833
|
const lines = await consumeIterator(iter, { consume: false, isDone: (line) => line?.checkpoint != null });
|
|
612
834
|
expect(lines).toMatchSnapshot();
|
|
@@ -682,20 +904,20 @@ bucket_definitions:
|
|
|
682
904
|
})
|
|
683
905
|
});
|
|
684
906
|
}
|
|
685
|
-
catch (
|
|
686
|
-
|
|
687
|
-
|
|
907
|
+
catch (e_11) {
|
|
908
|
+
env_11.error = e_11;
|
|
909
|
+
env_11.hasError = true;
|
|
688
910
|
}
|
|
689
911
|
finally {
|
|
690
|
-
const
|
|
691
|
-
if (
|
|
692
|
-
await
|
|
912
|
+
const result_11 = __disposeResources(env_11);
|
|
913
|
+
if (result_11)
|
|
914
|
+
await result_11;
|
|
693
915
|
}
|
|
694
916
|
});
|
|
695
917
|
test('write checkpoint', async () => {
|
|
696
|
-
const
|
|
918
|
+
const env_12 = { stack: [], error: void 0, hasError: false };
|
|
697
919
|
try {
|
|
698
|
-
const f = __addDisposableResource(
|
|
920
|
+
const f = __addDisposableResource(env_12, await factory(), true);
|
|
699
921
|
const syncRules = await f.updateSyncRules({
|
|
700
922
|
content: BASIC_SYNC_RULES
|
|
701
923
|
});
|
|
@@ -747,14 +969,14 @@ bucket_definitions:
|
|
|
747
969
|
})
|
|
748
970
|
});
|
|
749
971
|
}
|
|
750
|
-
catch (
|
|
751
|
-
|
|
752
|
-
|
|
972
|
+
catch (e_12) {
|
|
973
|
+
env_12.error = e_12;
|
|
974
|
+
env_12.hasError = true;
|
|
753
975
|
}
|
|
754
976
|
finally {
|
|
755
|
-
const
|
|
756
|
-
if (
|
|
757
|
-
await
|
|
977
|
+
const result_12 = __disposeResources(env_12);
|
|
978
|
+
if (result_12)
|
|
979
|
+
await result_12;
|
|
758
980
|
}
|
|
759
981
|
});
|
|
760
982
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-sync-tests.js","sourceRoot":"","sources":["../../src/tests/register-sync-tests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register-sync-tests.js","sourceRoot":"","sources":["../../src/tests/register-sync-tests.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,21 +5,22 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.0.0-dev-
|
|
8
|
+
"version": "0.0.0-dev-20250325131118",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"license": "FSL-1.1-Apache-2.0",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@powersync/service-core": "^0.0.0-dev-
|
|
13
|
+
"@powersync/service-core": "^0.0.0-dev-20250325131118",
|
|
14
14
|
"@powersync/service-jsonbig": "^0.17.10",
|
|
15
|
-
"@powersync/service-sync-rules": "^0.
|
|
15
|
+
"@powersync/service-sync-rules": "^0.25.0"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"vite-tsconfig-paths": "^5.1.4",
|
|
19
19
|
"vitest": "^3.0.5"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"typescript": "^5.7.3"
|
|
22
|
+
"typescript": "^5.7.3",
|
|
23
|
+
"@opentelemetry/sdk-metrics": "^1.30.1"
|
|
23
24
|
},
|
|
24
25
|
"scripts": {
|
|
25
26
|
"build": "tsc -b",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { MetricsEngine, MetricsFactory, OpenTelemetryMetricsFactory } from '@powersync/service-core';
|
|
2
|
+
import {
|
|
3
|
+
AggregationTemporality,
|
|
4
|
+
InMemoryMetricExporter,
|
|
5
|
+
MeterProvider,
|
|
6
|
+
PeriodicExportingMetricReader
|
|
7
|
+
} from '@opentelemetry/sdk-metrics';
|
|
8
|
+
|
|
9
|
+
export class MetricsHelper {
|
|
10
|
+
public factory: MetricsFactory;
|
|
11
|
+
public metricsEngine: MetricsEngine;
|
|
12
|
+
private meterProvider: MeterProvider;
|
|
13
|
+
private exporter: InMemoryMetricExporter;
|
|
14
|
+
private metricReader: PeriodicExportingMetricReader;
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
this.exporter = new InMemoryMetricExporter(AggregationTemporality.CUMULATIVE);
|
|
18
|
+
|
|
19
|
+
this.metricReader = new PeriodicExportingMetricReader({
|
|
20
|
+
exporter: this.exporter,
|
|
21
|
+
exportIntervalMillis: 100 // Export quickly for tests
|
|
22
|
+
});
|
|
23
|
+
this.meterProvider = new MeterProvider({
|
|
24
|
+
readers: [this.metricReader]
|
|
25
|
+
});
|
|
26
|
+
const meter = this.meterProvider.getMeter('powersync-tests');
|
|
27
|
+
this.factory = new OpenTelemetryMetricsFactory(meter);
|
|
28
|
+
this.metricsEngine = new MetricsEngine({
|
|
29
|
+
factory: this.factory,
|
|
30
|
+
disable_telemetry_sharing: true
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
resetMetrics() {
|
|
35
|
+
this.exporter.reset();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async getMetricValueForTests(name: string): Promise<number | undefined> {
|
|
39
|
+
await this.metricReader.forceFlush();
|
|
40
|
+
const metrics = this.exporter.getMetrics();
|
|
41
|
+
// Use the latest reported ResourceMetric
|
|
42
|
+
const scoped = metrics[metrics.length - 1]?.scopeMetrics?.[0]?.metrics;
|
|
43
|
+
const metric = scoped?.find((metric) => metric.descriptor.name == name);
|
|
44
|
+
if (metric == null) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
`Cannot find metric ${name}. Options: ${scoped.map((metric) => metric.descriptor.name).join(',')}`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
const point = metric.dataPoints[metric.dataPoints.length - 1];
|
|
50
|
+
return point?.value as number;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const METRICS_HELPER = new MetricsHelper();
|
|
@@ -32,8 +32,8 @@ export function testRules(content: string): storage.PersistedSyncRulesContent {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export function makeTestTable(name: string,
|
|
36
|
-
const relId = utils.hashData('table', name, (
|
|
35
|
+
export function makeTestTable(name: string, replicaIdColumns?: string[] | undefined) {
|
|
36
|
+
const relId = utils.hashData('table', name, (replicaIdColumns ?? ['id']).join(','));
|
|
37
37
|
const id = new bson.ObjectId('6544e3899293153fa7b38331');
|
|
38
38
|
return new storage.SourceTable(
|
|
39
39
|
id,
|
|
@@ -41,7 +41,7 @@ export function makeTestTable(name: string, columns?: string[] | undefined) {
|
|
|
41
41
|
relId,
|
|
42
42
|
'public',
|
|
43
43
|
name,
|
|
44
|
-
(
|
|
44
|
+
(replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 })),
|
|
45
45
|
true
|
|
46
46
|
);
|
|
47
47
|
}
|