@reventlessdev/reventless-local 3.0.0-alpha.117 → 3.0.0-alpha.118
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 +7 -0
- package/package.json +7 -6
- package/rescript.json +2 -1
- package/src/Platform.res +44 -6
- package/src/Platform.res.mjs +53 -16
- package/src/adapter/Backend.res +23 -0
- package/src/adapter/Backend.res.mjs +23 -0
- package/src/adapter/BackendState.res +12 -7
- package/src/adapter/BackendState.res.mjs +18 -6
- package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res +3 -22
- package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res.mjs +1 -22
- package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res +13 -10
- package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res.mjs +22 -8
- package/src/adapter/DcbEventLog/LocalDcbEventLogStorage.res +52 -0
- package/src/adapter/DcbEventLog/LocalDcbEventLogStorage.res.mjs +35 -0
- package/src/adapter/EventLog/EventLogStorage_InMemory.res +3 -15
- package/src/adapter/EventLog/EventLogStorage_InMemory.res.mjs +0 -21
- package/src/adapter/EventLog/LocalEventLogStorage.res +33 -0
- package/src/adapter/EventLog/LocalEventLogStorage.res.mjs +35 -0
- package/src/adapter/LocalBus.res +1 -1
- package/src/adapter/PgProjectionCatchup.res +146 -0
- package/src/adapter/PgProjectionCatchup.res.mjs +114 -0
- package/src/adapter/QueryDb/LocalQueryDbStorage.res +43 -0
- package/src/adapter/QueryDb/LocalQueryDbStorage.res.mjs +42 -0
- package/src/adapter/QueryDb/QueryDbStorage_InMemory.res +3 -24
- package/src/adapter/QueryDb/QueryDbStorage_InMemory.res.mjs +1 -28
- package/src/adapter/Task/LocalTaskBucket.res +1 -1
- package/src/adapter/Task/LocalTaskBucket.res.mjs +1 -1
- package/src/components/Aggregate_Builder.res +1 -1
- package/src/components/Aggregate_Builder.res.mjs +3 -3
- package/src/components/AutomationSlice_Builder.res +1 -1
- package/src/components/AutomationSlice_Builder.res.mjs +3 -3
- package/src/components/Counter_Builder.res +1 -1
- package/src/components/Counter_Builder.res.mjs +2 -2
- package/src/components/DcbEventLog_Builder.res +1 -1
- package/src/components/DcbEventLog_Builder.res.mjs +2 -2
- package/src/components/InboundTranslationSlice_Builder.res +1 -1
- package/src/components/InboundTranslationSlice_Builder.res.mjs +2 -2
- package/src/components/OutboundTranslationSlice_Builder.res +1 -1
- package/src/components/OutboundTranslationSlice_Builder.res.mjs +2 -2
- package/src/components/Plugin_Builder.res +1 -1
- package/src/components/Plugin_Builder.res.mjs +2 -2
- package/src/components/ReadModel_Builder.res +1 -1
- package/src/components/ReadModel_Builder.res.mjs +2 -2
- package/src/components/StateViewSlice_Builder.res +1 -1
- package/src/components/StateViewSlice_Builder.res.mjs +2 -2
- package/src/test/Mocks/MockDcbEventLogStorage.res +2 -2
- package/src/test/Mocks/MockDcbEventLogStorage.res.mjs +5 -2
- package/tests/adapter/BackendParityTest.res +43 -8
- package/tests/adapter/BackendParityTest.res.mjs +39 -9
- package/tests/adapter/DcbEventLogStorageSqliteTest.res +17 -9
- package/tests/adapter/DcbEventLogStorageSqliteTest.res.mjs +19 -10
- package/tests/adapter/PgProjectionCatchupTest.res +149 -0
- package/tests/adapter/PgProjectionCatchupTest.res.mjs +181 -0
- package/tests/adapter/QueryDbGsiTtlTest.res +2 -2
- package/tests/adapter/QueryDbGsiTtlTest.res.mjs +3 -2
- package/tests/adapter/QueryDbListResolverTest.res +1 -1
- package/tests/adapter/QueryDbListResolverTest.res.mjs +2 -2
- package/tests/adapter/QueryDbStorageTest.res +10 -10
- package/tests/adapter/QueryDbStorageTest.res.mjs +11 -11
- package/tests/adapter/QueryEngineTest.res +8 -8
- package/tests/adapter/QueryEngineTest.res.mjs +9 -9
- package/tests/components/querydb/QueryDbFixtures.res +1 -1
- package/tests/components/querydb/QueryDbFixtures.res.mjs +2 -2
- package/tests/components/querydb/QueryDbSubIdFixtures.res +1 -1
- package/tests/components/querydb/QueryDbSubIdFixtures.res.mjs +2 -2
|
@@ -11,7 +11,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
11
11
|
describe("save and load", () => {
|
|
12
12
|
testPromise("save stores state; loadStream retrieves it by id", async () => {
|
|
13
13
|
module TestBus = LocalBus.Make()
|
|
14
|
-
module Storage =
|
|
14
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
15
15
|
let s = Storage.make(~name="rm1", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
16
16
|
let ops = await s.operations->TestRunner.resolve
|
|
17
17
|
let _ = await ops.save("id1", JSON.Encode.string("value1"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -26,7 +26,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
26
26
|
|
|
27
27
|
testPromise("loadStream returns empty for unknown id", async () => {
|
|
28
28
|
module TestBus = LocalBus.Make()
|
|
29
|
-
module Storage =
|
|
29
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
30
30
|
let s = Storage.make(~name="rm2", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
31
31
|
let ops = await s.operations->TestRunner.resolve
|
|
32
32
|
let items =
|
|
@@ -39,7 +39,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
39
39
|
|
|
40
40
|
testPromise("save overwrites previous state for same id", async () => {
|
|
41
41
|
module TestBus = LocalBus.Make()
|
|
42
|
-
module Storage =
|
|
42
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
43
43
|
let s = Storage.make(~name="rm3", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
44
44
|
let ops = await s.operations->TestRunner.resolve
|
|
45
45
|
let _ = await ops.save("id1", JSON.Encode.string("old"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -55,7 +55,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
55
55
|
|
|
56
56
|
testPromise("load delegates to loadStream (backward-compat)", async () => {
|
|
57
57
|
module TestBus = LocalBus.Make()
|
|
58
|
-
module Storage =
|
|
58
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
59
59
|
let s = Storage.make(~name="load-compat", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
60
60
|
let ops = await s.operations->TestRunner.resolve
|
|
61
61
|
let _ = await ops.save("compat-id", JSON.Encode.string("compat-val"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -68,7 +68,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
68
68
|
describe("saveBatch", () => {
|
|
69
69
|
testPromise("stores multiple items; loadStream retrieves each by id", async () => {
|
|
70
70
|
module TestBus = LocalBus.Make()
|
|
71
|
-
module Storage =
|
|
71
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
72
72
|
let s = Storage.make(~name="rm4", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
73
73
|
let ops = await s.operations->TestRunner.resolve
|
|
74
74
|
let _ = await ops.saveBatch([
|
|
@@ -93,7 +93,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
93
93
|
describe("count", () => {
|
|
94
94
|
testPromise("returns the increment value (no real counting semantics)", async () => {
|
|
95
95
|
module TestBus = LocalBus.Make()
|
|
96
|
-
module Storage =
|
|
96
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
97
97
|
let s = Storage.make(~name="rm5", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
98
98
|
let ops = await s.operations->TestRunner.resolve
|
|
99
99
|
let result = await ops.count("id1", "field", 5)
|
|
@@ -104,7 +104,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
104
104
|
describe("delete", () => {
|
|
105
105
|
testPromise("removes item; loadStream returns empty", async () => {
|
|
106
106
|
module TestBus = LocalBus.Make()
|
|
107
|
-
module Storage =
|
|
107
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
108
108
|
let s = Storage.make(~name="rm6", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
109
109
|
let ops = await s.operations->TestRunner.resolve
|
|
110
110
|
let _ = await ops.save("del-id", JSON.Encode.string("v"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -119,7 +119,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
119
119
|
|
|
120
120
|
testPromise("deleteBatch removes multiple items", async () => {
|
|
121
121
|
module TestBus = LocalBus.Make()
|
|
122
|
-
module Storage =
|
|
122
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
123
123
|
let s = Storage.make(~name="rm7", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
124
124
|
let ops = await s.operations->TestRunner.resolve
|
|
125
125
|
let _ = await ops.saveBatch([
|
|
@@ -145,7 +145,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
145
145
|
describe("scan registration", () => {
|
|
146
146
|
testPromise("after save, scan function returns all stored items", async () => {
|
|
147
147
|
module TestBus = LocalBus.Make()
|
|
148
|
-
module Storage =
|
|
148
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
149
149
|
let s = Storage.make(~name="scan-rm", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
150
150
|
let ops = await s.operations->TestRunner.resolve
|
|
151
151
|
let _ = await ops.save("s1", JSON.Encode.string("item1"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -157,7 +157,7 @@ describe("QueryDbStorage_InMemory", () => {
|
|
|
157
157
|
|
|
158
158
|
testPromise("after delete, scan function excludes deleted item", async () => {
|
|
159
159
|
module TestBus = LocalBus.Make()
|
|
160
|
-
module Storage =
|
|
160
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
161
161
|
let s = Storage.make(~name="scan-rm2", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
162
162
|
let ops = await s.operations->TestRunner.resolve
|
|
163
163
|
let _ = await ops.save("keep", JSON.Encode.string("keep"), ReventlessCore.QueryDb.Any, None)
|
|
@@ -5,7 +5,7 @@ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as LocalBus$ReventlessLocal from "../../src/adapter/LocalBus.res.mjs";
|
|
7
7
|
import * as TestRunner$ReventlessLocal from "../../src/test/TestRunner.res.mjs";
|
|
8
|
-
import * as
|
|
8
|
+
import * as LocalQueryDbStorage$ReventlessLocal from "../../src/adapter/QueryDb/LocalQueryDbStorage.res.mjs";
|
|
9
9
|
|
|
10
10
|
TestRunner$ReventlessLocal.setup();
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
15
15
|
globalThis.describe("save and load", () => {
|
|
16
16
|
globalThis.test("save stores state; loadStream retrieves it by id", async () => {
|
|
17
17
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
18
|
-
let Storage =
|
|
18
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
19
19
|
let s = Storage.make("rm1", [], undefined, undefined, undefined, undefined, opts);
|
|
20
20
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
21
21
|
await ops.save("id1", "value1", "Any", undefined);
|
|
@@ -25,7 +25,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
25
25
|
});
|
|
26
26
|
globalThis.test("loadStream returns empty for unknown id", async () => {
|
|
27
27
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
28
|
-
let Storage =
|
|
28
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
29
29
|
let s = Storage.make("rm2", [], undefined, undefined, undefined, undefined, opts);
|
|
30
30
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
31
31
|
let items = await Effect.runPromise(Effect.catchAll(Stream.runCollect(ops.loadStream("unknown")), param => Effect.succeed([])));
|
|
@@ -33,7 +33,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
33
33
|
});
|
|
34
34
|
globalThis.test("save overwrites previous state for same id", async () => {
|
|
35
35
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
36
|
-
let Storage =
|
|
36
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
37
37
|
let s = Storage.make("rm3", [], undefined, undefined, undefined, undefined, opts);
|
|
38
38
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
39
39
|
await ops.save("id1", "old", "Any", undefined);
|
|
@@ -44,7 +44,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
44
44
|
});
|
|
45
45
|
globalThis.test("load delegates to loadStream (backward-compat)", async () => {
|
|
46
46
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
47
|
-
let Storage =
|
|
47
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
48
48
|
let s = Storage.make("load-compat", [], undefined, undefined, undefined, undefined, opts);
|
|
49
49
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
50
50
|
await ops.save("compat-id", "compat-val", "Any", undefined);
|
|
@@ -59,7 +59,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
59
59
|
globalThis.describe("saveBatch", () => {
|
|
60
60
|
globalThis.test("stores multiple items; loadStream retrieves each by id", async () => {
|
|
61
61
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
62
|
-
let Storage =
|
|
62
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
63
63
|
let s = Storage.make("rm4", [], undefined, undefined, undefined, undefined, opts);
|
|
64
64
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
65
65
|
await ops.saveBatch([
|
|
@@ -83,7 +83,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
83
83
|
globalThis.describe("count", () => {
|
|
84
84
|
globalThis.test("returns the increment value (no real counting semantics)", async () => {
|
|
85
85
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
86
|
-
let Storage =
|
|
86
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
87
87
|
let s = Storage.make("rm5", [], undefined, undefined, undefined, undefined, opts);
|
|
88
88
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
89
89
|
let result = await ops.count("id1", "field", 5);
|
|
@@ -96,7 +96,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
96
96
|
globalThis.describe("delete", () => {
|
|
97
97
|
globalThis.test("removes item; loadStream returns empty", async () => {
|
|
98
98
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
99
|
-
let Storage =
|
|
99
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
100
100
|
let s = Storage.make("rm6", [], undefined, undefined, undefined, undefined, opts);
|
|
101
101
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
102
102
|
await ops.save("del-id", "v", "Any", undefined);
|
|
@@ -106,7 +106,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
106
106
|
});
|
|
107
107
|
globalThis.test("deleteBatch removes multiple items", async () => {
|
|
108
108
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
109
|
-
let Storage =
|
|
109
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
110
110
|
let s = Storage.make("rm7", [], undefined, undefined, undefined, undefined, opts);
|
|
111
111
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
112
112
|
await ops.saveBatch([
|
|
@@ -140,7 +140,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
140
140
|
globalThis.describe("scan registration", () => {
|
|
141
141
|
globalThis.test("after save, scan function returns all stored items", async () => {
|
|
142
142
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
143
|
-
let Storage =
|
|
143
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
144
144
|
let s = Storage.make("scan-rm", [], undefined, undefined, undefined, undefined, opts);
|
|
145
145
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
146
146
|
await ops.save("s1", "item1", "Any", undefined);
|
|
@@ -151,7 +151,7 @@ globalThis.describe("QueryDbStorage_InMemory", () => {
|
|
|
151
151
|
});
|
|
152
152
|
globalThis.test("after delete, scan function excludes deleted item", async () => {
|
|
153
153
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
154
|
-
let Storage =
|
|
154
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
155
155
|
let s = Storage.make("scan-rm2", [], undefined, undefined, undefined, undefined, opts);
|
|
156
156
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
157
157
|
await ops.save("keep", "keep", "Any", undefined);
|
|
@@ -11,7 +11,7 @@ describe("LocalQueryEngine", () => {
|
|
|
11
11
|
describe("query", () => {
|
|
12
12
|
testPromise("query by id returns items saved in the matching QueryDbStorage", async () => {
|
|
13
13
|
module TestBus = LocalBus.Make()
|
|
14
|
-
module Storage =
|
|
14
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
15
15
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
16
16
|
let s = Storage.make(~name="users", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
17
17
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -27,7 +27,7 @@ describe("LocalQueryEngine", () => {
|
|
|
27
27
|
|
|
28
28
|
testPromise("query with explicit key overrides the id parameter", async () => {
|
|
29
29
|
module TestBus = LocalBus.Make()
|
|
30
|
-
module Storage =
|
|
30
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
31
31
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
32
32
|
let s = Storage.make(~name="products", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
33
33
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -56,7 +56,7 @@ describe("LocalQueryEngine", () => {
|
|
|
56
56
|
|
|
57
57
|
testPromise("query with Int id converts to string key for lookup", async () => {
|
|
58
58
|
module TestBus = LocalBus.Make()
|
|
59
|
-
module Storage =
|
|
59
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
60
60
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
61
61
|
let s = Storage.make(~name="counters", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
62
62
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -73,7 +73,7 @@ describe("LocalQueryEngine", () => {
|
|
|
73
73
|
describe("scan", () => {
|
|
74
74
|
testPromise("scan returns all items from the matching QueryDbStorage", async () => {
|
|
75
75
|
module TestBus = LocalBus.Make()
|
|
76
|
-
module Storage =
|
|
76
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
77
77
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
78
78
|
let s = Storage.make(~name="orders", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
79
79
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -96,7 +96,7 @@ describe("LocalQueryEngine", () => {
|
|
|
96
96
|
describe("scan with ~limit", () => {
|
|
97
97
|
testPromise("~limit=2 on a 5-item QueryDb returns exactly 2 items", async () => {
|
|
98
98
|
module TestBus = LocalBus.Make()
|
|
99
|
-
module Storage =
|
|
99
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
100
100
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
101
101
|
let s = Storage.make(~name="items", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
102
102
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -112,7 +112,7 @@ describe("LocalQueryEngine", () => {
|
|
|
112
112
|
|
|
113
113
|
testPromise("~limit larger than total returns all items (no padding)", async () => {
|
|
114
114
|
module TestBus = LocalBus.Make()
|
|
115
|
-
module Storage =
|
|
115
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
116
116
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
117
117
|
let s = Storage.make(~name="things", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
118
118
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -125,7 +125,7 @@ describe("LocalQueryEngine", () => {
|
|
|
125
125
|
|
|
126
126
|
testPromise("~limit=0 returns empty array", async () => {
|
|
127
127
|
module TestBus = LocalBus.Make()
|
|
128
|
-
module Storage =
|
|
128
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
129
129
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
130
130
|
let s = Storage.make(~name="stuff", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
131
131
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -137,7 +137,7 @@ describe("LocalQueryEngine", () => {
|
|
|
137
137
|
|
|
138
138
|
testPromise("~limit=3 on a 3-item QueryDb returns all 3 items", async () => {
|
|
139
139
|
module TestBus = LocalBus.Make()
|
|
140
|
-
module Storage =
|
|
140
|
+
module Storage = LocalQueryDbStorage.Make(TestBus)
|
|
141
141
|
module QE = LocalQueryEngine.Make(TestBus)
|
|
142
142
|
let s = Storage.make(~name="widgets", ~indexes=[], ~api=(), ~apiRole=(), ~opts)
|
|
143
143
|
let ops = await s.operations->TestRunner.resolve
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import * as LocalBus$ReventlessLocal from "../../src/adapter/LocalBus.res.mjs";
|
|
4
4
|
import * as TestRunner$ReventlessLocal from "../../src/test/TestRunner.res.mjs";
|
|
5
5
|
import * as LocalQueryEngine$ReventlessLocal from "../../src/adapter/QueryEngine/LocalQueryEngine.res.mjs";
|
|
6
|
-
import * as
|
|
6
|
+
import * as LocalQueryDbStorage$ReventlessLocal from "../../src/adapter/QueryDb/LocalQueryDbStorage.res.mjs";
|
|
7
7
|
|
|
8
8
|
TestRunner$ReventlessLocal.setup();
|
|
9
9
|
|
|
@@ -13,7 +13,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
13
13
|
globalThis.describe("query", () => {
|
|
14
14
|
globalThis.test("query by id returns items saved in the matching QueryDbStorage", async () => {
|
|
15
15
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
16
|
-
let Storage =
|
|
16
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
17
17
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
18
18
|
let s = Storage.make("users", [], undefined, undefined, undefined, undefined, opts);
|
|
19
19
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -28,7 +28,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
28
28
|
});
|
|
29
29
|
globalThis.test("query with explicit key overrides the id parameter", async () => {
|
|
30
30
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
31
|
-
let Storage =
|
|
31
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
32
32
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
33
33
|
let s = Storage.make("products", [], undefined, undefined, undefined, undefined, opts);
|
|
34
34
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -53,7 +53,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
53
53
|
});
|
|
54
54
|
globalThis.test("query with Int id converts to string key for lookup", async () => {
|
|
55
55
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
56
|
-
let Storage =
|
|
56
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
57
57
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
58
58
|
let s = Storage.make("counters", [], undefined, undefined, undefined, undefined, opts);
|
|
59
59
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -69,7 +69,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
69
69
|
globalThis.describe("scan", () => {
|
|
70
70
|
globalThis.test("scan returns all items from the matching QueryDbStorage", async () => {
|
|
71
71
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
72
|
-
let Storage =
|
|
72
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
73
73
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
74
74
|
let s = Storage.make("orders", [], undefined, undefined, undefined, undefined, opts);
|
|
75
75
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -90,7 +90,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
90
90
|
globalThis.describe("scan with ~limit", () => {
|
|
91
91
|
globalThis.test("~limit=2 on a 5-item QueryDb returns exactly 2 items", async () => {
|
|
92
92
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
93
|
-
let Storage =
|
|
93
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
94
94
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
95
95
|
let s = Storage.make("items", [], undefined, undefined, undefined, undefined, opts);
|
|
96
96
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -105,7 +105,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
105
105
|
});
|
|
106
106
|
globalThis.test("~limit larger than total returns all items (no padding)", async () => {
|
|
107
107
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
108
|
-
let Storage =
|
|
108
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
109
109
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
110
110
|
let s = Storage.make("things", [], undefined, undefined, undefined, undefined, opts);
|
|
111
111
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -117,7 +117,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
117
117
|
});
|
|
118
118
|
globalThis.test("~limit=0 returns empty array", async () => {
|
|
119
119
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
120
|
-
let Storage =
|
|
120
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
121
121
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
122
122
|
let s = Storage.make("stuff", [], undefined, undefined, undefined, undefined, opts);
|
|
123
123
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -128,7 +128,7 @@ globalThis.describe("LocalQueryEngine", () => {
|
|
|
128
128
|
});
|
|
129
129
|
globalThis.test("~limit=3 on a 3-item QueryDb returns all 3 items", async () => {
|
|
130
130
|
let TestBus = LocalBus$ReventlessLocal.Make({});
|
|
131
|
-
let Storage =
|
|
131
|
+
let Storage = LocalQueryDbStorage$ReventlessLocal.Make(TestBus);
|
|
132
132
|
let QE = LocalQueryEngine$ReventlessLocal.Make(TestBus);
|
|
133
133
|
let s = Storage.make("widgets", [], undefined, undefined, undefined, undefined, opts);
|
|
134
134
|
let ops = await TestRunner$ReventlessLocal.resolve(s.operations);
|
|
@@ -28,7 +28,7 @@ let _ = TestRunner.setup()
|
|
|
28
28
|
// Build QueryDb using in-memory adapters
|
|
29
29
|
// ─────────────────────────────────────────────────────────────
|
|
30
30
|
|
|
31
|
-
module QDbStorage =
|
|
31
|
+
module QDbStorage = LocalQueryDbStorage.Make(Bus)
|
|
32
32
|
module QDbResolvers = ReventlessCore.QueryDb_Adapter.NoResolvers(QDbStorage)
|
|
33
33
|
module QueryDbMaker = ReventlessCore.QueryDb_Builder.Make(
|
|
34
34
|
ItemQueryDbSpec,
|
|
@@ -7,7 +7,7 @@ import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs
|
|
|
7
7
|
import * as TestRunner$ReventlessLocal from "../../../src/test/TestRunner.res.mjs";
|
|
8
8
|
import * as QueryDb_Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/components/QueryDb/QueryDb_Adapter.res.mjs";
|
|
9
9
|
import * as QueryDb_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/QueryDb/QueryDb_Builder.res.mjs";
|
|
10
|
-
import * as
|
|
10
|
+
import * as LocalQueryDbStorage$ReventlessLocal from "../../../src/adapter/QueryDb/LocalQueryDbStorage.res.mjs";
|
|
11
11
|
|
|
12
12
|
let name = "TestItemQueryDb";
|
|
13
13
|
|
|
@@ -35,7 +35,7 @@ let Bus = LocalBus$ReventlessLocal.Make({});
|
|
|
35
35
|
|
|
36
36
|
TestRunner$ReventlessLocal.setup();
|
|
37
37
|
|
|
38
|
-
let QDbStorage =
|
|
38
|
+
let QDbStorage = LocalQueryDbStorage$ReventlessLocal.Make(Bus);
|
|
39
39
|
|
|
40
40
|
let QDbResolvers = QueryDb_Adapter$ReventlessCore.NoResolvers({
|
|
41
41
|
make: QDbStorage.make
|
|
@@ -33,7 +33,7 @@ let _ = TestRunner.setup()
|
|
|
33
33
|
// Build QueryDb using in-memory adapters
|
|
34
34
|
// ─────────────────────────────────────────────────────────────
|
|
35
35
|
|
|
36
|
-
module QDbStorage =
|
|
36
|
+
module QDbStorage = LocalQueryDbStorage.Make(Bus)
|
|
37
37
|
module QDbResolvers = ReventlessCore.QueryDb_Adapter.NoResolvers(QDbStorage)
|
|
38
38
|
module MetricQueryDbMaker = ReventlessCore.QueryDb_Builder.Make(
|
|
39
39
|
MetricSpec,
|
|
@@ -7,7 +7,7 @@ import * as LocalBus$ReventlessLocal from "../../../src/adapter/LocalBus.res.mjs
|
|
|
7
7
|
import * as TestRunner$ReventlessLocal from "../../../src/test/TestRunner.res.mjs";
|
|
8
8
|
import * as QueryDb_Adapter$ReventlessCore from "@reventlessdev/reventless-core/src/components/QueryDb/QueryDb_Adapter.res.mjs";
|
|
9
9
|
import * as QueryDb_Builder$ReventlessCore from "@reventlessdev/reventless-core/src/components/QueryDb/QueryDb_Builder.res.mjs";
|
|
10
|
-
import * as
|
|
10
|
+
import * as LocalQueryDbStorage$ReventlessLocal from "../../../src/adapter/QueryDb/LocalQueryDbStorage.res.mjs";
|
|
11
11
|
|
|
12
12
|
let name = "TestMetricQueryDb";
|
|
13
13
|
|
|
@@ -42,7 +42,7 @@ let Bus = LocalBus$ReventlessLocal.Make({});
|
|
|
42
42
|
|
|
43
43
|
TestRunner$ReventlessLocal.setup();
|
|
44
44
|
|
|
45
|
-
let QDbStorage =
|
|
45
|
+
let QDbStorage = LocalQueryDbStorage$ReventlessLocal.Make(Bus);
|
|
46
46
|
|
|
47
47
|
let QDbResolvers = QueryDb_Adapter$ReventlessCore.NoResolvers({
|
|
48
48
|
make: QDbStorage.make
|