@powersync/service-core-tests 0.0.0-dev-20260225160713 → 0.0.0-dev-20260511080634
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 +95 -3
- package/dist/test-utils/MetricsHelper.js +1 -1
- package/dist/test-utils/MetricsHelper.js.map +1 -1
- package/dist/test-utils/StorageDataHelpers.d.ts +8 -0
- package/dist/test-utils/StorageDataHelpers.js +33 -0
- package/dist/test-utils/StorageDataHelpers.js.map +1 -0
- package/dist/test-utils/general-utils.d.ts +22 -3
- package/dist/test-utils/general-utils.js +56 -3
- 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/test-utils/test-utils-index.d.ts +1 -0
- package/dist/test-utils/test-utils-index.js +1 -0
- package/dist/test-utils/test-utils-index.js.map +1 -1
- package/dist/tests/register-compacting-tests.d.ts +1 -1
- package/dist/tests/register-compacting-tests.js +514 -587
- package/dist/tests/register-compacting-tests.js.map +1 -1
- package/dist/tests/register-data-storage-checkpoint-tests.d.ts +1 -1
- package/dist/tests/register-data-storage-checkpoint-tests.js +200 -301
- package/dist/tests/register-data-storage-checkpoint-tests.js.map +1 -1
- package/dist/tests/register-data-storage-data-tests.d.ts +2 -2
- package/dist/tests/register-data-storage-data-tests.js +1220 -1041
- package/dist/tests/register-data-storage-data-tests.js.map +1 -1
- package/dist/tests/register-data-storage-parameter-tests.d.ts +1 -1
- package/dist/tests/register-data-storage-parameter-tests.js +681 -632
- package/dist/tests/register-data-storage-parameter-tests.js.map +1 -1
- package/dist/tests/register-migration-tests.js +63 -139
- package/dist/tests/register-migration-tests.js.map +1 -1
- package/dist/tests/register-parameter-compacting-tests.d.ts +1 -1
- package/dist/tests/register-parameter-compacting-tests.js +121 -201
- package/dist/tests/register-parameter-compacting-tests.js.map +1 -1
- package/dist/tests/register-sync-tests.d.ts +2 -1
- package/dist/tests/register-sync-tests.js +974 -1136
- package/dist/tests/register-sync-tests.js.map +1 -1
- package/dist/tests/tests-index.d.ts +4 -4
- package/dist/tests/tests-index.js +4 -4
- package/dist/tests/tests-index.js.map +1 -1
- package/dist/tests/util.d.ts +5 -4
- package/dist/tests/util.js +27 -12
- package/dist/tests/util.js.map +1 -1
- package/package.json +6 -6
- package/src/test-utils/MetricsHelper.ts +1 -1
- package/src/test-utils/StorageDataHelpers.ts +44 -0
- package/src/test-utils/general-utils.ts +81 -4
- package/src/test-utils/stream_utils.ts +2 -2
- package/src/test-utils/test-utils-index.ts +1 -0
- package/src/tests/register-compacting-tests.ts +376 -322
- package/src/tests/register-data-storage-checkpoint-tests.ts +85 -53
- package/src/tests/register-data-storage-data-tests.ts +1076 -563
- package/src/tests/register-data-storage-parameter-tests.ts +631 -327
- package/src/tests/register-parameter-compacting-tests.ts +92 -96
- package/src/tests/register-sync-tests.ts +463 -379
- package/src/tests/tests-index.ts +4 -4
- package/src/tests/util.ts +46 -17
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,222 +1,142 @@
|
|
|
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
1
|
import { storage, updateSyncRulesFromYaml } from '@powersync/service-core';
|
|
54
2
|
import { ScopedParameterLookup } from '@powersync/service-sync-rules';
|
|
55
3
|
import { expect, test } from 'vitest';
|
|
56
4
|
import * as test_utils from '../test-utils/test-utils-index.js';
|
|
57
|
-
|
|
58
|
-
|
|
5
|
+
export function registerParameterCompactTests(config) {
|
|
6
|
+
const generateStorageFactory = config.factory;
|
|
59
7
|
test('compacting parameters', async () => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const factory = __addDisposableResource(env_1, await generateStorageFactory(), true);
|
|
63
|
-
const syncRules = await factory.updateSyncRules(updateSyncRulesFromYaml(`
|
|
8
|
+
await using factory = await generateStorageFactory();
|
|
9
|
+
const syncRules = await factory.updateSyncRules(updateSyncRulesFromYaml(`
|
|
64
10
|
bucket_definitions:
|
|
65
11
|
test:
|
|
66
12
|
parameters: select id from test where id = request.user_id()
|
|
67
13
|
data: []
|
|
68
14
|
`));
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
expect(statsAfter.parameters_size_bytes).toBeLessThan(statsBefore.parameters_size_bytes);
|
|
129
|
-
}
|
|
130
|
-
catch (e_1) {
|
|
131
|
-
env_1.error = e_1;
|
|
132
|
-
env_1.hasError = true;
|
|
133
|
-
}
|
|
134
|
-
finally {
|
|
135
|
-
const result_1 = __disposeResources(env_1);
|
|
136
|
-
if (result_1)
|
|
137
|
-
await result_1;
|
|
138
|
-
}
|
|
15
|
+
const bucketStorage = factory.getInstance(syncRules);
|
|
16
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
17
|
+
const testTable = await test_utils.resolveTestTable(writer, 'test', ['id'], config);
|
|
18
|
+
await writer.markAllSnapshotDone('1/1');
|
|
19
|
+
await writer.save({
|
|
20
|
+
sourceTable: testTable,
|
|
21
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
22
|
+
after: {
|
|
23
|
+
id: 't1'
|
|
24
|
+
},
|
|
25
|
+
afterReplicaId: 't1'
|
|
26
|
+
});
|
|
27
|
+
await writer.save({
|
|
28
|
+
sourceTable: testTable,
|
|
29
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
30
|
+
after: {
|
|
31
|
+
id: 't2'
|
|
32
|
+
},
|
|
33
|
+
afterReplicaId: 't2'
|
|
34
|
+
});
|
|
35
|
+
await writer.commit('1/1');
|
|
36
|
+
const lookup = ScopedParameterLookup.direct({ lookupName: 'test', queryId: '1', source: null }, ['t1']);
|
|
37
|
+
const checkpoint1 = await bucketStorage.getCheckpoint();
|
|
38
|
+
const parameters1 = await checkpoint1.getParameterSets([lookup], 1000);
|
|
39
|
+
expect(parameters1).toEqual([{ id: 't1' }]);
|
|
40
|
+
await writer.save({
|
|
41
|
+
sourceTable: testTable,
|
|
42
|
+
tag: storage.SaveOperationTag.UPDATE,
|
|
43
|
+
before: {
|
|
44
|
+
id: 't1'
|
|
45
|
+
},
|
|
46
|
+
beforeReplicaId: 't1',
|
|
47
|
+
after: {
|
|
48
|
+
id: 't1'
|
|
49
|
+
},
|
|
50
|
+
afterReplicaId: 't1'
|
|
51
|
+
});
|
|
52
|
+
await writer.save({
|
|
53
|
+
sourceTable: testTable,
|
|
54
|
+
tag: storage.SaveOperationTag.DELETE,
|
|
55
|
+
before: {
|
|
56
|
+
id: 't1'
|
|
57
|
+
},
|
|
58
|
+
beforeReplicaId: 't1'
|
|
59
|
+
});
|
|
60
|
+
await writer.commit('1/2');
|
|
61
|
+
const checkpoint2 = await bucketStorage.getCheckpoint();
|
|
62
|
+
const parameters2 = await checkpoint2.getParameterSets([lookup], 1000);
|
|
63
|
+
expect(parameters2).toEqual([]);
|
|
64
|
+
const statsBefore = await bucketStorage.factory.getStorageMetrics();
|
|
65
|
+
await bucketStorage.compact({ compactParameterData: true });
|
|
66
|
+
// Check consistency
|
|
67
|
+
const parameters1b = await checkpoint1.getParameterSets([lookup], 1000);
|
|
68
|
+
const parameters2b = await checkpoint2.getParameterSets([lookup], 1000);
|
|
69
|
+
expect(parameters1b).toEqual([{ id: 't1' }]);
|
|
70
|
+
expect(parameters2b).toEqual([]);
|
|
71
|
+
// Check storage size
|
|
72
|
+
const statsAfter = await bucketStorage.factory.getStorageMetrics();
|
|
73
|
+
expect(statsAfter.parameters_size_bytes).toBeLessThan(statsBefore.parameters_size_bytes);
|
|
139
74
|
});
|
|
140
75
|
for (let cacheLimit of [1, 10]) {
|
|
141
76
|
test(`compacting deleted parameters with cache size ${cacheLimit}`, async () => {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const factory = __addDisposableResource(env_2, await generateStorageFactory(), true);
|
|
145
|
-
const syncRules = await factory.updateSyncRules(updateSyncRulesFromYaml(`
|
|
77
|
+
await using factory = await generateStorageFactory();
|
|
78
|
+
const syncRules = await factory.updateSyncRules(updateSyncRulesFromYaml(`
|
|
146
79
|
bucket_definitions:
|
|
147
80
|
test:
|
|
148
81
|
parameters: select id from test where uid = request.user_id()
|
|
149
82
|
data: []
|
|
150
83
|
`));
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
// Check storage size
|
|
208
|
-
const statsAfter = await bucketStorage.factory.getStorageMetrics();
|
|
209
|
-
expect(statsAfter.parameters_size_bytes).toBeLessThan(statsBefore.parameters_size_bytes);
|
|
210
|
-
}
|
|
211
|
-
catch (e_2) {
|
|
212
|
-
env_2.error = e_2;
|
|
213
|
-
env_2.hasError = true;
|
|
214
|
-
}
|
|
215
|
-
finally {
|
|
216
|
-
const result_2 = __disposeResources(env_2);
|
|
217
|
-
if (result_2)
|
|
218
|
-
await result_2;
|
|
219
|
-
}
|
|
84
|
+
const bucketStorage = factory.getInstance(syncRules);
|
|
85
|
+
await using writer = await bucketStorage.createWriter(test_utils.BATCH_OPTIONS);
|
|
86
|
+
const testTable = await test_utils.resolveTestTable(writer, 'test', ['id'], config);
|
|
87
|
+
await writer.markAllSnapshotDone('1/1');
|
|
88
|
+
await writer.save({
|
|
89
|
+
sourceTable: testTable,
|
|
90
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
91
|
+
after: {
|
|
92
|
+
id: 't1',
|
|
93
|
+
uid: 'u1'
|
|
94
|
+
},
|
|
95
|
+
afterReplicaId: 't1'
|
|
96
|
+
});
|
|
97
|
+
// Interleave with another operation, to evict the other cache entry when compacting.
|
|
98
|
+
await writer.save({
|
|
99
|
+
sourceTable: testTable,
|
|
100
|
+
tag: storage.SaveOperationTag.INSERT,
|
|
101
|
+
after: {
|
|
102
|
+
id: 't2',
|
|
103
|
+
uid: 'u1'
|
|
104
|
+
},
|
|
105
|
+
afterReplicaId: 't2'
|
|
106
|
+
});
|
|
107
|
+
await writer.commit('1/1');
|
|
108
|
+
await writer.save({
|
|
109
|
+
sourceTable: testTable,
|
|
110
|
+
tag: storage.SaveOperationTag.DELETE,
|
|
111
|
+
before: {
|
|
112
|
+
id: 't1',
|
|
113
|
+
uid: 'u1'
|
|
114
|
+
},
|
|
115
|
+
beforeReplicaId: 't1'
|
|
116
|
+
});
|
|
117
|
+
await writer.commit('2/1');
|
|
118
|
+
await writer.save({
|
|
119
|
+
sourceTable: testTable,
|
|
120
|
+
tag: storage.SaveOperationTag.UPDATE,
|
|
121
|
+
after: {
|
|
122
|
+
id: 't2',
|
|
123
|
+
uid: 'u2'
|
|
124
|
+
},
|
|
125
|
+
afterReplicaId: 't2'
|
|
126
|
+
});
|
|
127
|
+
await writer.commit('3/1');
|
|
128
|
+
const lookup = ScopedParameterLookup.direct({ lookupName: 'test', queryId: '1', source: null }, ['u1']);
|
|
129
|
+
const checkpoint1 = await bucketStorage.getCheckpoint();
|
|
130
|
+
const parameters1 = await checkpoint1.getParameterSets([lookup], 1000);
|
|
131
|
+
expect(parameters1).toEqual([]);
|
|
132
|
+
const statsBefore = await bucketStorage.factory.getStorageMetrics();
|
|
133
|
+
await bucketStorage.compact({ compactParameterData: true, compactParameterCacheLimit: cacheLimit });
|
|
134
|
+
// Check consistency
|
|
135
|
+
const parameters1b = await checkpoint1.getParameterSets([lookup], 1000);
|
|
136
|
+
expect(parameters1b).toEqual([]);
|
|
137
|
+
// Check storage size
|
|
138
|
+
const statsAfter = await bucketStorage.factory.getStorageMetrics();
|
|
139
|
+
expect(statsAfter.parameters_size_bytes).toBeLessThan(statsBefore.parameters_size_bytes);
|
|
220
140
|
});
|
|
221
141
|
}
|
|
222
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-parameter-compacting-tests.js","sourceRoot":"","sources":["../../src/tests/register-parameter-compacting-tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-parameter-compacting-tests.js","sourceRoot":"","sources":["../../src/tests/register-parameter-compacting-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare const SYNC_SNAPSHOT_PATH: string;
|
|
|
8
8
|
* });
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
|
-
export declare function registerSyncTests(
|
|
11
|
+
export declare function registerSyncTests(configOrFactory: storage.TestStorageConfig | storage.TestStorageFactory, options?: {
|
|
12
12
|
storageVersion?: number;
|
|
13
|
+
tableIdStrings?: boolean;
|
|
13
14
|
}): void;
|