@furystack/core 10.4.0 → 10.4.5
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/dist/create-physical-store-tests.d.ts +2 -2
- package/dist/create-physical-store-tests.d.ts.map +1 -1
- package/dist/create-physical-store-tests.js +132 -98
- package/dist/create-physical-store-tests.js.map +1 -1
- package/dist/store-manager.d.ts.map +1 -1
- package/dist/store-manager.js +1 -1
- package/dist/store-manager.js.map +1 -1
- package/dist/store-manager.spec.js +1 -0
- package/dist/store-manager.spec.js.map +1 -1
- package/package.json +6 -6
- package/src/create-physical-store-tests.ts +164 -131
- package/src/store-manager.spec.ts +1 -0
- package/src/store-manager.ts +4 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PhysicalStore } from './models/physical-store';
|
|
2
|
+
import { Injector } from '@furystack/inject';
|
|
2
3
|
export declare class TestClass {
|
|
3
4
|
id: number;
|
|
4
5
|
stringValue1: string;
|
|
@@ -11,9 +12,8 @@ export declare class TestClass {
|
|
|
11
12
|
export declare const createMockEntity: (part?: Partial<TestClass> | undefined) => TestClass;
|
|
12
13
|
export interface StoreTestOptions<T, TPrimaryKey extends keyof T> {
|
|
13
14
|
typeName: string;
|
|
14
|
-
createStore: () => PhysicalStore<T, TPrimaryKey>;
|
|
15
|
+
createStore: (i: Injector) => PhysicalStore<T, TPrimaryKey>;
|
|
15
16
|
skipRegexTests?: boolean;
|
|
16
|
-
skipAdvancedTests?: boolean;
|
|
17
17
|
}
|
|
18
18
|
export declare const createStoreTest: (options: StoreTestOptions<TestClass, 'id'>) => void;
|
|
19
19
|
//# sourceMappingURL=create-physical-store-tests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-physical-store-tests.d.ts","sourceRoot":"","sources":["../src/create-physical-store-tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"create-physical-store-tests.d.ts","sourceRoot":"","sources":["../src/create-physical-store-tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,qBAAa,SAAS;IACpB,EAAE,EAAG,MAAM,CAAA;IACX,YAAY,EAAG,MAAM,CAAA;IACrB,YAAY,EAAG,MAAM,CAAA;IACrB,YAAY,EAAG,MAAM,CAAA;IACrB,YAAY,EAAG,MAAM,CAAA;IACrB,YAAY,EAAG,OAAO,CAAA;IACtB,SAAS,EAAG,IAAI,CAAA;CACjB;AAGD,eAAO,MAAM,gBAAgB,sDAUZ,CAAA;AAEjB,MAAM,WAAW,gBAAgB,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,eAAO,MAAM,eAAe,YAAa,iBAAiB,SAAS,EAAE,IAAI,CAAC,SA2gBzE,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createStoreTest = exports.createMockEntity = exports.TestClass = void 0;
|
|
4
4
|
const utils_1 = require("@furystack/utils");
|
|
5
|
+
const inject_1 = require("@furystack/inject");
|
|
5
6
|
class TestClass {
|
|
6
7
|
}
|
|
7
8
|
exports.TestClass = TestClass;
|
|
@@ -21,13 +22,15 @@ const createStoreTest = (options) => {
|
|
|
21
22
|
describe(`Standard Physical Store tests for '${options.typeName}'`, () => {
|
|
22
23
|
describe('General CRUD', () => {
|
|
23
24
|
it('Should be created with empty by default', async () => {
|
|
24
|
-
await (0, utils_1.usingAsync)(
|
|
25
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
26
|
+
const store = options.createStore(i);
|
|
25
27
|
const count = await store.count();
|
|
26
28
|
expect(count).toBe(0);
|
|
27
29
|
});
|
|
28
30
|
});
|
|
29
31
|
it('Should be able to store an entity', async () => {
|
|
30
|
-
await (0, utils_1.usingAsync)(
|
|
32
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
33
|
+
const store = options.createStore(i);
|
|
31
34
|
const entity = (0, exports.createMockEntity)();
|
|
32
35
|
await store.add(entity);
|
|
33
36
|
const count = await store.count();
|
|
@@ -35,7 +38,8 @@ const createStoreTest = (options) => {
|
|
|
35
38
|
});
|
|
36
39
|
});
|
|
37
40
|
it('Should be able to store an entity without providing an unique Id', async () => {
|
|
38
|
-
await (0, utils_1.usingAsync)(
|
|
41
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
42
|
+
const store = options.createStore(i);
|
|
39
43
|
const { id, ...entityWithoutId } = (0, exports.createMockEntity)();
|
|
40
44
|
const { created } = await store.add(entityWithoutId);
|
|
41
45
|
expect(created.length).toBe(1);
|
|
@@ -46,7 +50,8 @@ const createStoreTest = (options) => {
|
|
|
46
50
|
});
|
|
47
51
|
});
|
|
48
52
|
it('Should be able to store multiple entities', async () => {
|
|
49
|
-
await (0, utils_1.usingAsync)(
|
|
53
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
54
|
+
const store = options.createStore(i);
|
|
50
55
|
const entity1 = (0, exports.createMockEntity)();
|
|
51
56
|
const entity2 = (0, exports.createMockEntity)();
|
|
52
57
|
await store.add(entity1, entity2);
|
|
@@ -55,7 +60,8 @@ const createStoreTest = (options) => {
|
|
|
55
60
|
});
|
|
56
61
|
});
|
|
57
62
|
it('Add should throw and skip adding on duplicate IDs', async () => {
|
|
58
|
-
await (0, utils_1.usingAsync)(
|
|
63
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
64
|
+
const store = options.createStore(i);
|
|
59
65
|
const entity = (0, exports.createMockEntity)();
|
|
60
66
|
await store.add(entity);
|
|
61
67
|
await expect(store.add(entity)).rejects.toThrow();
|
|
@@ -64,13 +70,15 @@ const createStoreTest = (options) => {
|
|
|
64
70
|
});
|
|
65
71
|
});
|
|
66
72
|
it('Should return undefined if no entry has been found', async () => {
|
|
67
|
-
await (0, utils_1.usingAsync)(
|
|
73
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
74
|
+
const store = options.createStore(i);
|
|
68
75
|
const entity = await store.get(1);
|
|
69
76
|
expect(entity).toBeUndefined();
|
|
70
77
|
});
|
|
71
78
|
});
|
|
72
79
|
it('Should be able to retrieve an added entity', async () => {
|
|
73
|
-
await (0, utils_1.usingAsync)(
|
|
80
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
81
|
+
const store = options.createStore(i);
|
|
74
82
|
const entity = (0, exports.createMockEntity)();
|
|
75
83
|
await store.add(entity);
|
|
76
84
|
const retrieved = await store.get(entity.id);
|
|
@@ -78,7 +86,8 @@ const createStoreTest = (options) => {
|
|
|
78
86
|
});
|
|
79
87
|
});
|
|
80
88
|
it('Should be able to retrieve an added entity with projection', async () => {
|
|
81
|
-
await (0, utils_1.usingAsync)(
|
|
89
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
90
|
+
const store = options.createStore(i);
|
|
82
91
|
const entity = (0, exports.createMockEntity)();
|
|
83
92
|
await store.add(entity);
|
|
84
93
|
const retrieved = await store.get(entity.id, ['id', 'stringValue1']);
|
|
@@ -89,7 +98,8 @@ const createStoreTest = (options) => {
|
|
|
89
98
|
});
|
|
90
99
|
});
|
|
91
100
|
it('Should be able to update an added entity', async () => {
|
|
92
|
-
await (0, utils_1.usingAsync)(
|
|
101
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
102
|
+
const store = options.createStore(i);
|
|
93
103
|
const entity = (0, exports.createMockEntity)();
|
|
94
104
|
await store.add(entity);
|
|
95
105
|
await store.update(entity.id, { stringValue1: 'modified' });
|
|
@@ -98,13 +108,15 @@ const createStoreTest = (options) => {
|
|
|
98
108
|
});
|
|
99
109
|
});
|
|
100
110
|
it('Update should throw an error if the entity does not exists', async () => {
|
|
101
|
-
await (0, utils_1.usingAsync)(
|
|
111
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
112
|
+
const store = options.createStore(i);
|
|
102
113
|
const entity = (0, exports.createMockEntity)();
|
|
103
114
|
await expect(store.update(entity.id, entity)).rejects.toThrow('Entity not found');
|
|
104
115
|
});
|
|
105
116
|
});
|
|
106
117
|
it('Should remove an entity', async () => {
|
|
107
|
-
await (0, utils_1.usingAsync)(
|
|
118
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
119
|
+
const store = options.createStore(i);
|
|
108
120
|
const entity = (0, exports.createMockEntity)();
|
|
109
121
|
await store.add(entity);
|
|
110
122
|
const count = await store.count();
|
|
@@ -115,7 +127,8 @@ const createStoreTest = (options) => {
|
|
|
115
127
|
});
|
|
116
128
|
});
|
|
117
129
|
it('Should remove multiple entities at once', async () => {
|
|
118
|
-
await (0, utils_1.usingAsync)(
|
|
130
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
131
|
+
const store = options.createStore(i);
|
|
119
132
|
const entity1 = (0, exports.createMockEntity)();
|
|
120
133
|
const entity2 = (0, exports.createMockEntity)();
|
|
121
134
|
const entity3 = (0, exports.createMockEntity)();
|
|
@@ -133,7 +146,8 @@ const createStoreTest = (options) => {
|
|
|
133
146
|
});
|
|
134
147
|
describe('Top, skip', () => {
|
|
135
148
|
it('Should respect top and skip', async () => {
|
|
136
|
-
await (0, utils_1.usingAsync)(
|
|
149
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (injector) => {
|
|
150
|
+
const store = options.createStore(injector);
|
|
137
151
|
for (let i = 0; i < 10; i++) {
|
|
138
152
|
await store.add((0, exports.createMockEntity)({ id: i }));
|
|
139
153
|
}
|
|
@@ -148,7 +162,8 @@ const createStoreTest = (options) => {
|
|
|
148
162
|
});
|
|
149
163
|
describe('Ordering', () => {
|
|
150
164
|
it('Should sort by numeric values', async () => {
|
|
151
|
-
await (0, utils_1.usingAsync)(
|
|
165
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (injector) => {
|
|
166
|
+
const store = options.createStore(injector);
|
|
152
167
|
for (let i = 0; i < 10; i++) {
|
|
153
168
|
await store.add((0, exports.createMockEntity)({ id: i, numberValue1: Math.random(), numberValue2: Math.random() }));
|
|
154
169
|
}
|
|
@@ -176,28 +191,32 @@ const createStoreTest = (options) => {
|
|
|
176
191
|
});
|
|
177
192
|
describe('Filtering', () => {
|
|
178
193
|
it('should filter strings with $eq', async () => {
|
|
179
|
-
await (0, utils_1.usingAsync)(
|
|
194
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
195
|
+
const store = options.createStore(i);
|
|
180
196
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'def' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'def' }));
|
|
181
197
|
const result = await store.find({ filter: { stringValue1: { $eq: 'def' } } });
|
|
182
198
|
expect(result.length).toBe(2);
|
|
183
199
|
});
|
|
184
200
|
});
|
|
185
201
|
it('should filter numbers with $eq', async () => {
|
|
186
|
-
await (0, utils_1.usingAsync)(
|
|
202
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
203
|
+
const store = options.createStore(i);
|
|
187
204
|
await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 2 }));
|
|
188
205
|
const result = await store.find({ filter: { numberValue1: { $eq: 2 } } });
|
|
189
206
|
expect(result.length).toBe(2);
|
|
190
207
|
});
|
|
191
208
|
});
|
|
192
209
|
it('filter should return the corresponding entries for multiple props', async () => {
|
|
193
|
-
await (0, utils_1.usingAsync)(
|
|
210
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
211
|
+
const store = options.createStore(i);
|
|
194
212
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'def', stringValue2: 'def' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'def' }));
|
|
195
213
|
const result = await store.find({ filter: { stringValue1: { $eq: 'def' }, stringValue2: { $eq: 'def' } } });
|
|
196
214
|
expect(result.length).toBe(1);
|
|
197
215
|
});
|
|
198
216
|
});
|
|
199
217
|
it('filter should return the corresponding entries with $in statement', async () => {
|
|
200
|
-
await (0, utils_1.usingAsync)(
|
|
218
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
219
|
+
const store = options.createStore(i);
|
|
201
220
|
await store.add((0, exports.createMockEntity)({ stringValue1: 'asd' }), (0, exports.createMockEntity)({ stringValue1: 'def' }), (0, exports.createMockEntity)({ stringValue1: 'sdf' }));
|
|
202
221
|
const result = await store.find({ filter: { stringValue1: { $in: ['asd', 'def'] } } });
|
|
203
222
|
expect(result.length).toBe(2);
|
|
@@ -205,7 +224,8 @@ const createStoreTest = (options) => {
|
|
|
205
224
|
});
|
|
206
225
|
});
|
|
207
226
|
it('filter should return the corresponding entries with $nin statement', async () => {
|
|
208
|
-
await (0, utils_1.usingAsync)(
|
|
227
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
228
|
+
const store = options.createStore(i);
|
|
209
229
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'def' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'sdf' }));
|
|
210
230
|
const result = await store.find({ filter: { stringValue1: { $nin: ['asd', 'def'] } } });
|
|
211
231
|
expect(result.length).toBe(1);
|
|
@@ -213,7 +233,8 @@ const createStoreTest = (options) => {
|
|
|
213
233
|
});
|
|
214
234
|
});
|
|
215
235
|
it('filter should return the corresponding entries with $ne statement', async () => {
|
|
216
|
-
await (0, utils_1.usingAsync)(
|
|
236
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
237
|
+
const store = options.createStore(i);
|
|
217
238
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'def' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'sdf' }));
|
|
218
239
|
const result = await store.find({ filter: { stringValue1: { $ne: 'asd' } } });
|
|
219
240
|
expect(result.length).toBe(2);
|
|
@@ -221,7 +242,8 @@ const createStoreTest = (options) => {
|
|
|
221
242
|
});
|
|
222
243
|
});
|
|
223
244
|
it('filter should return the corresponding entries with $lt statement', async () => {
|
|
224
|
-
await (0, utils_1.usingAsync)(
|
|
245
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
246
|
+
const store = options.createStore(i);
|
|
225
247
|
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3 }));
|
|
226
248
|
const result = await store.find({ filter: { numberValue1: { $lt: 2 } } });
|
|
227
249
|
expect(result.length).toBe(1);
|
|
@@ -229,7 +251,8 @@ const createStoreTest = (options) => {
|
|
|
229
251
|
});
|
|
230
252
|
});
|
|
231
253
|
it('filter should return the corresponding entries with $lte statement', async () => {
|
|
232
|
-
await (0, utils_1.usingAsync)(
|
|
254
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
255
|
+
const store = options.createStore(i);
|
|
233
256
|
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3 }));
|
|
234
257
|
const result = await store.find({ filter: { numberValue1: { $lte: 2 } } });
|
|
235
258
|
expect(result.length).toBe(2);
|
|
@@ -237,7 +260,8 @@ const createStoreTest = (options) => {
|
|
|
237
260
|
});
|
|
238
261
|
});
|
|
239
262
|
it('filter should return the corresponding entries with $gt statement', async () => {
|
|
240
|
-
await (0, utils_1.usingAsync)(
|
|
263
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
264
|
+
const store = options.createStore(i);
|
|
241
265
|
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3 }));
|
|
242
266
|
const result = await store.find({ filter: { numberValue1: { $gt: 2 } } });
|
|
243
267
|
expect(result.length).toBe(1);
|
|
@@ -245,7 +269,8 @@ const createStoreTest = (options) => {
|
|
|
245
269
|
});
|
|
246
270
|
});
|
|
247
271
|
it('filter should return the corresponding entries with $gte statement', async () => {
|
|
248
|
-
await (0, utils_1.usingAsync)(
|
|
272
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
273
|
+
const store = options.createStore(i);
|
|
249
274
|
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3 }));
|
|
250
275
|
const result = await store.find({ filter: { numberValue1: { $gte: 2 } } });
|
|
251
276
|
expect(result.length).toBe(2);
|
|
@@ -253,103 +278,110 @@ const createStoreTest = (options) => {
|
|
|
253
278
|
});
|
|
254
279
|
});
|
|
255
280
|
it('filter should return the corresponding entries with $in AND $eq statement', async () => {
|
|
256
|
-
await (0, utils_1.usingAsync)(
|
|
281
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
282
|
+
const store = options.createStore(i);
|
|
257
283
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'def' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'sdf' }));
|
|
258
284
|
const result = await store.find({ filter: { stringValue1: { $in: ['asd', 'def'], $eq: 'asd' } } });
|
|
259
285
|
expect(result.length).toBe(1);
|
|
260
286
|
expect(result.map((r) => r.stringValue1)).toEqual(['asd']);
|
|
261
287
|
});
|
|
262
288
|
});
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
});
|
|
271
|
-
expect(result.length).toBe(1);
|
|
272
|
-
expect(result[0]).toEqual(created[1]);
|
|
289
|
+
describe('logical $and statements', () => {
|
|
290
|
+
it('should filter $and logical statements with $eq statements', async () => {
|
|
291
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
292
|
+
const store = options.createStore(i);
|
|
293
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1, numberValue2: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2, numberValue2: 1 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3, numberValue2: 1 }));
|
|
294
|
+
const result = await store.find({
|
|
295
|
+
filter: { $and: [{ numberValue1: { $eq: 2 } }, { numberValue2: { $eq: 1 } }] },
|
|
273
296
|
});
|
|
297
|
+
expect(result.length).toBe(1);
|
|
298
|
+
expect(result[0]).toEqual(created[1]);
|
|
274
299
|
});
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
expect(result[0]).toEqual(created[0]);
|
|
300
|
+
});
|
|
301
|
+
it('should filter $and logical statements with $ne statements', async () => {
|
|
302
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
303
|
+
const store = options.createStore(i);
|
|
304
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1, numberValue2: 2 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2, numberValue2: 3 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3, numberValue2: 1 }));
|
|
305
|
+
const result = await store.find({
|
|
306
|
+
filter: { $and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $ne: 1 } }] },
|
|
283
307
|
});
|
|
308
|
+
expect(result.length).toBe(1);
|
|
309
|
+
expect(result[0]).toEqual(created[0]);
|
|
284
310
|
});
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
expect(result[0]).toEqual(created[1]);
|
|
311
|
+
});
|
|
312
|
+
it('should filter $and logical statements with $lt/$gt statements', async () => {
|
|
313
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
314
|
+
const store = options.createStore(i);
|
|
315
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1, numberValue2: 2 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2, numberValue2: 3 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3, numberValue2: 1 }));
|
|
316
|
+
const result = await store.find({
|
|
317
|
+
filter: { $and: [{ numberValue1: { $lt: 3 } }, { numberValue2: { $gt: 2 } }] },
|
|
293
318
|
});
|
|
319
|
+
expect(result.length).toBe(1);
|
|
320
|
+
expect(result[0]).toEqual(created[1]);
|
|
294
321
|
});
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
expect(result[0]).toEqual(created[1]);
|
|
322
|
+
});
|
|
323
|
+
it('should filter $and logical statements with $lte/$gte statements', async () => {
|
|
324
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
325
|
+
const store = options.createStore(i);
|
|
326
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1, numberValue2: 1 }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2, numberValue2: 2 }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3, numberValue2: 3 }));
|
|
327
|
+
const result = await store.find({
|
|
328
|
+
filter: { $and: [{ numberValue1: { $lte: 2 } }, { numberValue2: { $gte: 2 } }] },
|
|
303
329
|
});
|
|
330
|
+
expect(result.length).toBe(1);
|
|
331
|
+
expect(result[0]).toEqual(created[1]);
|
|
304
332
|
});
|
|
305
333
|
});
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
expect(result).toEqual([created[1], created[2]]);
|
|
334
|
+
});
|
|
335
|
+
describe('logical $or statements', () => {
|
|
336
|
+
it('should filter logical $or statements with $eq statements', async () => {
|
|
337
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
338
|
+
const store = options.createStore(i);
|
|
339
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'aaa' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'bbb' }));
|
|
340
|
+
const result = await store.find({
|
|
341
|
+
filter: { $or: [{ stringValue1: { $eq: 'aaa' } }, { stringValue1: { $eq: 'bbb' } }] },
|
|
315
342
|
});
|
|
343
|
+
expect(result.length).toBe(2);
|
|
344
|
+
expect(result).toEqual([created[1], created[2]]);
|
|
316
345
|
});
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
expect(result).toEqual(created);
|
|
346
|
+
});
|
|
347
|
+
it('should filter logical $or statements with $neq statements', async () => {
|
|
348
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
349
|
+
const store = options.createStore(i);
|
|
350
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'aaa' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'bbb' }));
|
|
351
|
+
const result = await store.find({
|
|
352
|
+
filter: { $or: [{ stringValue1: { $ne: 'aaa' } }, { stringValue1: { $ne: 'bbb' } }] },
|
|
325
353
|
});
|
|
354
|
+
expect(result.length).toBe(3);
|
|
355
|
+
expect(result).toEqual(created);
|
|
326
356
|
});
|
|
327
357
|
});
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
{
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
expect(result).toEqual([created[1], created[2]]);
|
|
358
|
+
});
|
|
359
|
+
describe('Nested $or and $and logical operators', () => {
|
|
360
|
+
it('should filter $and operators inside $or-s', async () => {
|
|
361
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
362
|
+
const store = options.createStore(i);
|
|
363
|
+
const { created } = await store.add((0, exports.createMockEntity)({ id: 1, numberValue1: 1, numberValue2: 3, booleanValue: true }), (0, exports.createMockEntity)({ id: 2, numberValue1: 2, numberValue2: 2, booleanValue: false }), (0, exports.createMockEntity)({ id: 3, numberValue1: 3, numberValue2: 1, booleanValue: true }));
|
|
364
|
+
const result = await store.find({
|
|
365
|
+
filter: {
|
|
366
|
+
$or: [
|
|
367
|
+
{
|
|
368
|
+
$and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $eq: 1 } }],
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
$and: [{ numberValue1: { $ne: 3 } }, { booleanValue: { $ne: true } }],
|
|
372
|
+
},
|
|
373
|
+
],
|
|
374
|
+
},
|
|
346
375
|
});
|
|
376
|
+
expect(result.length).toBe(2);
|
|
377
|
+
expect(result).toEqual([created[1], created[2]]);
|
|
347
378
|
});
|
|
348
379
|
});
|
|
349
|
-
}
|
|
380
|
+
});
|
|
350
381
|
if (!options.skipRegexTests) {
|
|
351
382
|
it('filter should return the corresponding entries with $regex', async () => {
|
|
352
|
-
await (0, utils_1.usingAsync)(
|
|
383
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
384
|
+
const store = options.createStore(i);
|
|
353
385
|
await store.add((0, exports.createMockEntity)({ id: 1, stringValue1: 'asd' }), (0, exports.createMockEntity)({ id: 2, stringValue1: 'aaa' }), (0, exports.createMockEntity)({ id: 3, stringValue1: 'bbb' }));
|
|
354
386
|
const result = await store.find({ filter: { stringValue1: { $regex: '([a])' } } });
|
|
355
387
|
expect(result.length).toBe(2);
|
|
@@ -360,14 +392,16 @@ const createStoreTest = (options) => {
|
|
|
360
392
|
});
|
|
361
393
|
describe('Count', () => {
|
|
362
394
|
it('Should return the count', async () => {
|
|
363
|
-
await (0, utils_1.usingAsync)(
|
|
395
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
396
|
+
const store = options.createStore(i);
|
|
364
397
|
await store.add((0, exports.createMockEntity)(), (0, exports.createMockEntity)(), (0, exports.createMockEntity)());
|
|
365
398
|
const count = await store.count();
|
|
366
399
|
expect(count).toBe(3);
|
|
367
400
|
});
|
|
368
401
|
});
|
|
369
402
|
it('Should respect filters', async () => {
|
|
370
|
-
await (0, utils_1.usingAsync)(
|
|
403
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
404
|
+
const store = options.createStore(i);
|
|
371
405
|
await store.add((0, exports.createMockEntity)({ numberValue1: 1 }), (0, exports.createMockEntity)({ numberValue1: 1 }), (0, exports.createMockEntity)({ numberValue1: 2 }));
|
|
372
406
|
const count = await store.count({ numberValue1: { $eq: 1 } });
|
|
373
407
|
expect(count).toBe(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-physical-store-tests.js","sourceRoot":"","sources":["../src/create-physical-store-tests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-physical-store-tests.js","sourceRoot":"","sources":["../src/create-physical-store-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-manager.d.ts","sourceRoot":"","sources":["../src/store-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAc,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD;;GAEG;AACH,qBACa,YAAa,YAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"store-manager.d.ts","sourceRoot":"","sources":["../src/store-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAc,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD;;GAEG;AACH,qBACa,YAAa,YAAW,UAAU;IAoD1B,QAAQ,EAAE,QAAQ;IAnDrC;;OAEG;IACU,OAAO;IAWpB,OAAO,CAAC,MAAM,CAAkE;IAEhF;;;;;;;;OAQG;IACI,WAAW,CAChB,CAAC,EACD,WAAW,SAAS,MAAM,CAAC,EAC3B,KAAK,SAAS,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,EAC3E,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW;IAWlD;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;gBAKjE,QAAQ,EAAE,QAAQ;CACtC"}
|
package/dist/store-manager.js
CHANGED
|
@@ -19,7 +19,7 @@ let StoreManager = class StoreManager {
|
|
|
19
19
|
const result = await Promise.allSettled([...this.stores.entries()].map(async ([_model, store]) => store.dispose()));
|
|
20
20
|
const fails = result.filter((r) => r.status === 'rejected');
|
|
21
21
|
if (fails && fails.length) {
|
|
22
|
-
const error = new errors_1.AggregatedError(`There was an error during disposing ${fails.length} stores
|
|
22
|
+
const error = new errors_1.AggregatedError(`There was an error during disposing ${fails.length} stores: ${fails.map((f) => f.reason)}`, fails);
|
|
23
23
|
throw error;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-manager.js","sourceRoot":"","sources":["../src/store-manager.ts"],"names":[],"mappings":";;;;AAAA,8CAAuE;AAEvE,qCAA0C;AAG1C;;GAEG;AAEH,IAAa,YAAY,GAAzB,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"store-manager.js","sourceRoot":"","sources":["../src/store-manager.ts"],"names":[],"mappings":";;;;AAAA,8CAAuE;AAEvE,qCAA0C;AAG1C;;GAEG;AAEH,IAAa,YAAY,GAAzB,MAAa,YAAY;IAoDvB,YAAmB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QArC7B,WAAM,GAAyD,IAAI,GAAG,EAAE,CAAA;IAqCxC,CAAC;IAnDzC;;OAEG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACnH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAA4B,CAAA;QACtF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YACzB,MAAM,KAAK,GAAG,IAAI,wBAAe,CAC/B,uCAAuC,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAC3F,KAAK,CACN,CAAA;YACD,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAGD;;;;;;;;OAQG;IACI,WAAW,CAIhB,KAAuB,EAAE,UAAuB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;SACnD;QACD,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE;YACtC,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACtC;QACD,OAAO,QAAiB,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAiC,KAAoC;QAClF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAgC,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAA;IACb,CAAC;CAGF,CAAA;AArDY,YAAY;IADxB,IAAA,mBAAU,EAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;kDAqDP,iBAAQ;GApD1B,YAAY,CAqDxB;AArDY,oCAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-manager.spec.js","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":";;AAAA,4CAAoD;AACpD,8CAA4C;AAC5C,mDAA8C;AAC9C,uDAAiD;AACjD,iCAA8B;AAC9B,qCAA0C;AAE1C,MAAM,IAAI;CAGT;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAC,CAAC,cAAc,CAAC,4BAAY,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAA;YACtC,MAAM,CAAC,GAAG,EAAE,CACV,EAAE,CAAC,WAAW,CACZ;aAEC,EACD,GAAG,CACJ,CACF,CAAC,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,MAAM,CAAC,QAAQ,CACb,IAAI,+BAAa,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC,CACH,CACF,CAAA;YAED,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,+BAAa,CAAC,CAAA;QAC3F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAA;YACtC,MAAM,SAAS,GAAG,KAAM,SAAQ,+BAAuB;gBAArC;;oBACT,YAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC7C,CAAC;aAAA,CAAA;YAED,EAAE,CAAC,QAAQ,CACT,IAAI,SAAS,CAAC;gBACZ,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC,CACH,CAAA;YACD,IAAI;gBACF,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;aACnB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,wBAAe,CAAC,CAAA;gBAC7C,MAAM,CAAE,KAAyB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;aAC9D;
|
|
1
|
+
{"version":3,"file":"store-manager.spec.js","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":";;AAAA,4CAAoD;AACpD,8CAA4C;AAC5C,mDAA8C;AAC9C,uDAAiD;AACjD,iCAA8B;AAC9B,qCAA0C;AAE1C,MAAM,IAAI;CAGT;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAC,CAAC,cAAc,CAAC,4BAAY,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAA;YACtC,MAAM,CAAC,GAAG,EAAE,CACV,EAAE,CAAC,WAAW,CACZ;aAEC,EACD,GAAG,CACJ,CACF,CAAC,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,MAAM,CAAC,QAAQ,CACb,IAAI,+BAAa,CAAC;gBAChB,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC,CACH,CACF,CAAA;YAED,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,+BAAa,CAAC,CAAA;QAC3F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAA;YACtC,MAAM,SAAS,GAAG,KAAM,SAAQ,+BAAuB;gBAArC;;oBACT,YAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC7C,CAAC;aAAA,CAAA;YAED,EAAE,CAAC,QAAQ,CACT,IAAI,SAAS,CAAC;gBACZ,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC,CACH,CAAA;YACD,IAAI;gBACF,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;aACnB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,wBAAe,CAAC,CAAA;gBAC7C,MAAM,CAAE,KAAyB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;aAC9D;YACD,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/core",
|
|
3
|
-
"version": "10.4.
|
|
3
|
+
"version": "10.4.5",
|
|
4
4
|
"description": "Core FuryStack package",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/furystack/furystack",
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/jest": "^27.0
|
|
32
|
-
"@types/node": "^
|
|
31
|
+
"@types/jest": "^27.4.0",
|
|
32
|
+
"@types/node": "^17.0.14"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@furystack/inject": "^
|
|
36
|
-
"@furystack/utils": "^
|
|
35
|
+
"@furystack/inject": "^5.0.2",
|
|
36
|
+
"@furystack/utils": "^2.0.2",
|
|
37
37
|
"semaphore-async-await": "^1.5.1",
|
|
38
38
|
"tslib": "^2.3.1"
|
|
39
39
|
},
|
|
40
40
|
"typings": "./dist/index.d.ts",
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "c06b94b4dc91dd3e37ba682e95e71a969e9454d2"
|
|
42
42
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PhysicalStore } from './models/physical-store'
|
|
2
2
|
import { usingAsync } from '@furystack/utils'
|
|
3
|
+
import { Injector } from '@furystack/inject'
|
|
3
4
|
|
|
4
5
|
export class TestClass {
|
|
5
6
|
id!: number
|
|
@@ -26,23 +27,24 @@ export const createMockEntity = (part?: Partial<TestClass>) =>
|
|
|
26
27
|
|
|
27
28
|
export interface StoreTestOptions<T, TPrimaryKey extends keyof T> {
|
|
28
29
|
typeName: string
|
|
29
|
-
createStore: () => PhysicalStore<T, TPrimaryKey>
|
|
30
|
+
createStore: (i: Injector) => PhysicalStore<T, TPrimaryKey>
|
|
30
31
|
skipRegexTests?: boolean
|
|
31
|
-
skipAdvancedTests?: boolean
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
35
35
|
describe(`Standard Physical Store tests for '${options.typeName}'`, () => {
|
|
36
36
|
describe('General CRUD', () => {
|
|
37
37
|
it('Should be created with empty by default', async () => {
|
|
38
|
-
await usingAsync(
|
|
38
|
+
await usingAsync(new Injector(), async (i) => {
|
|
39
|
+
const store = options.createStore(i)
|
|
39
40
|
const count = await store.count()
|
|
40
41
|
expect(count).toBe(0)
|
|
41
42
|
})
|
|
42
43
|
})
|
|
43
44
|
|
|
44
45
|
it('Should be able to store an entity', async () => {
|
|
45
|
-
await usingAsync(
|
|
46
|
+
await usingAsync(new Injector(), async (i) => {
|
|
47
|
+
const store = options.createStore(i)
|
|
46
48
|
const entity = createMockEntity()
|
|
47
49
|
await store.add(entity)
|
|
48
50
|
const count = await store.count()
|
|
@@ -51,7 +53,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
51
53
|
})
|
|
52
54
|
|
|
53
55
|
it('Should be able to store an entity without providing an unique Id', async () => {
|
|
54
|
-
await usingAsync(
|
|
56
|
+
await usingAsync(new Injector(), async (i) => {
|
|
57
|
+
const store = options.createStore(i)
|
|
55
58
|
const { id, ...entityWithoutId } = createMockEntity()
|
|
56
59
|
const { created } = await store.add(entityWithoutId)
|
|
57
60
|
expect(created.length).toBe(1)
|
|
@@ -63,7 +66,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
63
66
|
})
|
|
64
67
|
|
|
65
68
|
it('Should be able to store multiple entities', async () => {
|
|
66
|
-
await usingAsync(
|
|
69
|
+
await usingAsync(new Injector(), async (i) => {
|
|
70
|
+
const store = options.createStore(i)
|
|
67
71
|
const entity1 = createMockEntity()
|
|
68
72
|
const entity2 = createMockEntity()
|
|
69
73
|
await store.add(entity1, entity2)
|
|
@@ -73,7 +77,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
73
77
|
})
|
|
74
78
|
|
|
75
79
|
it('Add should throw and skip adding on duplicate IDs', async () => {
|
|
76
|
-
await usingAsync(
|
|
80
|
+
await usingAsync(new Injector(), async (i) => {
|
|
81
|
+
const store = options.createStore(i)
|
|
77
82
|
const entity = createMockEntity()
|
|
78
83
|
await store.add(entity)
|
|
79
84
|
await expect(store.add(entity)).rejects.toThrow()
|
|
@@ -83,14 +88,16 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
83
88
|
})
|
|
84
89
|
|
|
85
90
|
it('Should return undefined if no entry has been found', async () => {
|
|
86
|
-
await usingAsync(
|
|
91
|
+
await usingAsync(new Injector(), async (i) => {
|
|
92
|
+
const store = options.createStore(i)
|
|
87
93
|
const entity = await store.get(1)
|
|
88
94
|
expect(entity).toBeUndefined()
|
|
89
95
|
})
|
|
90
96
|
})
|
|
91
97
|
|
|
92
98
|
it('Should be able to retrieve an added entity', async () => {
|
|
93
|
-
await usingAsync(
|
|
99
|
+
await usingAsync(new Injector(), async (i) => {
|
|
100
|
+
const store = options.createStore(i)
|
|
94
101
|
const entity = createMockEntity()
|
|
95
102
|
await store.add(entity)
|
|
96
103
|
const retrieved = await store.get(entity.id)
|
|
@@ -99,7 +106,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
99
106
|
})
|
|
100
107
|
|
|
101
108
|
it('Should be able to retrieve an added entity with projection', async () => {
|
|
102
|
-
await usingAsync(
|
|
109
|
+
await usingAsync(new Injector(), async (i) => {
|
|
110
|
+
const store = options.createStore(i)
|
|
103
111
|
const entity = createMockEntity()
|
|
104
112
|
await store.add(entity)
|
|
105
113
|
const retrieved = await store.get(entity.id, ['id', 'stringValue1'])
|
|
@@ -111,7 +119,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
111
119
|
})
|
|
112
120
|
|
|
113
121
|
it('Should be able to update an added entity', async () => {
|
|
114
|
-
await usingAsync(
|
|
122
|
+
await usingAsync(new Injector(), async (i) => {
|
|
123
|
+
const store = options.createStore(i)
|
|
115
124
|
const entity = createMockEntity()
|
|
116
125
|
await store.add(entity)
|
|
117
126
|
await store.update(entity.id, { stringValue1: 'modified' })
|
|
@@ -121,14 +130,16 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
121
130
|
})
|
|
122
131
|
|
|
123
132
|
it('Update should throw an error if the entity does not exists', async () => {
|
|
124
|
-
await usingAsync(
|
|
133
|
+
await usingAsync(new Injector(), async (i) => {
|
|
134
|
+
const store = options.createStore(i)
|
|
125
135
|
const entity = createMockEntity()
|
|
126
136
|
await expect(store.update(entity.id, entity)).rejects.toThrow('Entity not found')
|
|
127
137
|
})
|
|
128
138
|
})
|
|
129
139
|
|
|
130
140
|
it('Should remove an entity', async () => {
|
|
131
|
-
await usingAsync(
|
|
141
|
+
await usingAsync(new Injector(), async (i) => {
|
|
142
|
+
const store = options.createStore(i)
|
|
132
143
|
const entity = createMockEntity()
|
|
133
144
|
await store.add(entity)
|
|
134
145
|
const count = await store.count()
|
|
@@ -140,7 +151,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
140
151
|
})
|
|
141
152
|
|
|
142
153
|
it('Should remove multiple entities at once', async () => {
|
|
143
|
-
await usingAsync(
|
|
154
|
+
await usingAsync(new Injector(), async (i) => {
|
|
155
|
+
const store = options.createStore(i)
|
|
144
156
|
const entity1 = createMockEntity()
|
|
145
157
|
const entity2 = createMockEntity()
|
|
146
158
|
const entity3 = createMockEntity()
|
|
@@ -159,7 +171,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
159
171
|
|
|
160
172
|
describe('Top, skip', () => {
|
|
161
173
|
it('Should respect top and skip', async () => {
|
|
162
|
-
await usingAsync(
|
|
174
|
+
await usingAsync(new Injector(), async (injector) => {
|
|
175
|
+
const store = options.createStore(injector)
|
|
163
176
|
for (let i = 0; i < 10; i++) {
|
|
164
177
|
await store.add(createMockEntity({ id: i }))
|
|
165
178
|
}
|
|
@@ -176,7 +189,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
176
189
|
})
|
|
177
190
|
describe('Ordering', () => {
|
|
178
191
|
it('Should sort by numeric values', async () => {
|
|
179
|
-
await usingAsync(
|
|
192
|
+
await usingAsync(new Injector(), async (injector) => {
|
|
193
|
+
const store = options.createStore(injector)
|
|
180
194
|
for (let i = 0; i < 10; i++) {
|
|
181
195
|
await store.add(createMockEntity({ id: i, numberValue1: Math.random(), numberValue2: Math.random() }))
|
|
182
196
|
}
|
|
@@ -206,7 +220,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
206
220
|
})
|
|
207
221
|
describe('Filtering', () => {
|
|
208
222
|
it('should filter strings with $eq', async () => {
|
|
209
|
-
await usingAsync(
|
|
223
|
+
await usingAsync(new Injector(), async (i) => {
|
|
224
|
+
const store = options.createStore(i)
|
|
210
225
|
await store.add(
|
|
211
226
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
212
227
|
createMockEntity({ id: 2, stringValue1: 'def' }),
|
|
@@ -218,7 +233,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
218
233
|
})
|
|
219
234
|
|
|
220
235
|
it('should filter numbers with $eq', async () => {
|
|
221
|
-
await usingAsync(
|
|
236
|
+
await usingAsync(new Injector(), async (i) => {
|
|
237
|
+
const store = options.createStore(i)
|
|
222
238
|
await store.add(
|
|
223
239
|
createMockEntity({ id: 1, numberValue1: 1 }),
|
|
224
240
|
createMockEntity({ id: 2, numberValue1: 2 }),
|
|
@@ -230,7 +246,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
230
246
|
})
|
|
231
247
|
|
|
232
248
|
it('filter should return the corresponding entries for multiple props', async () => {
|
|
233
|
-
await usingAsync(
|
|
249
|
+
await usingAsync(new Injector(), async (i) => {
|
|
250
|
+
const store = options.createStore(i)
|
|
234
251
|
await store.add(
|
|
235
252
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
236
253
|
createMockEntity({ id: 2, stringValue1: 'def', stringValue2: 'def' }),
|
|
@@ -243,7 +260,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
243
260
|
})
|
|
244
261
|
|
|
245
262
|
it('filter should return the corresponding entries with $in statement', async () => {
|
|
246
|
-
await usingAsync(
|
|
263
|
+
await usingAsync(new Injector(), async (i) => {
|
|
264
|
+
const store = options.createStore(i)
|
|
247
265
|
await store.add(
|
|
248
266
|
createMockEntity({ stringValue1: 'asd' }),
|
|
249
267
|
createMockEntity({ stringValue1: 'def' }),
|
|
@@ -257,7 +275,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
257
275
|
})
|
|
258
276
|
|
|
259
277
|
it('filter should return the corresponding entries with $nin statement', async () => {
|
|
260
|
-
await usingAsync(
|
|
278
|
+
await usingAsync(new Injector(), async (i) => {
|
|
279
|
+
const store = options.createStore(i)
|
|
261
280
|
await store.add(
|
|
262
281
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
263
282
|
createMockEntity({ id: 2, stringValue1: 'def' }),
|
|
@@ -271,7 +290,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
271
290
|
})
|
|
272
291
|
|
|
273
292
|
it('filter should return the corresponding entries with $ne statement', async () => {
|
|
274
|
-
await usingAsync(
|
|
293
|
+
await usingAsync(new Injector(), async (i) => {
|
|
294
|
+
const store = options.createStore(i)
|
|
275
295
|
await store.add(
|
|
276
296
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
277
297
|
createMockEntity({ id: 2, stringValue1: 'def' }),
|
|
@@ -285,7 +305,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
285
305
|
})
|
|
286
306
|
|
|
287
307
|
it('filter should return the corresponding entries with $lt statement', async () => {
|
|
288
|
-
await usingAsync(
|
|
308
|
+
await usingAsync(new Injector(), async (i) => {
|
|
309
|
+
const store = options.createStore(i)
|
|
289
310
|
const { created } = await store.add(
|
|
290
311
|
createMockEntity({ id: 1, numberValue1: 1 }),
|
|
291
312
|
createMockEntity({ id: 2, numberValue1: 2 }),
|
|
@@ -299,7 +320,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
299
320
|
})
|
|
300
321
|
|
|
301
322
|
it('filter should return the corresponding entries with $lte statement', async () => {
|
|
302
|
-
await usingAsync(
|
|
323
|
+
await usingAsync(new Injector(), async (i) => {
|
|
324
|
+
const store = options.createStore(i)
|
|
303
325
|
const { created } = await store.add(
|
|
304
326
|
createMockEntity({ id: 1, numberValue1: 1 }),
|
|
305
327
|
createMockEntity({ id: 2, numberValue1: 2 }),
|
|
@@ -313,7 +335,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
313
335
|
})
|
|
314
336
|
|
|
315
337
|
it('filter should return the corresponding entries with $gt statement', async () => {
|
|
316
|
-
await usingAsync(
|
|
338
|
+
await usingAsync(new Injector(), async (i) => {
|
|
339
|
+
const store = options.createStore(i)
|
|
317
340
|
const { created } = await store.add(
|
|
318
341
|
createMockEntity({ id: 1, numberValue1: 1 }),
|
|
319
342
|
createMockEntity({ id: 2, numberValue1: 2 }),
|
|
@@ -327,7 +350,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
327
350
|
})
|
|
328
351
|
|
|
329
352
|
it('filter should return the corresponding entries with $gte statement', async () => {
|
|
330
|
-
await usingAsync(
|
|
353
|
+
await usingAsync(new Injector(), async (i) => {
|
|
354
|
+
const store = options.createStore(i)
|
|
331
355
|
const { created } = await store.add(
|
|
332
356
|
createMockEntity({ id: 1, numberValue1: 1 }),
|
|
333
357
|
createMockEntity({ id: 2, numberValue1: 2 }),
|
|
@@ -341,7 +365,8 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
341
365
|
})
|
|
342
366
|
|
|
343
367
|
it('filter should return the corresponding entries with $in AND $eq statement', async () => {
|
|
344
|
-
await usingAsync(
|
|
368
|
+
await usingAsync(new Injector(), async (i) => {
|
|
369
|
+
const store = options.createStore(i)
|
|
345
370
|
await store.add(
|
|
346
371
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
347
372
|
createMockEntity({ id: 2, stringValue1: 'def' }),
|
|
@@ -354,134 +379,140 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
354
379
|
})
|
|
355
380
|
})
|
|
356
381
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
})
|
|
369
|
-
expect(result.length).toBe(1)
|
|
370
|
-
expect(result[0]).toEqual(created[1])
|
|
382
|
+
describe('logical $and statements', () => {
|
|
383
|
+
it('should filter $and logical statements with $eq statements', async () => {
|
|
384
|
+
await usingAsync(new Injector(), async (i) => {
|
|
385
|
+
const store = options.createStore(i)
|
|
386
|
+
const { created } = await store.add(
|
|
387
|
+
createMockEntity({ id: 1, numberValue1: 1, numberValue2: 1 }),
|
|
388
|
+
createMockEntity({ id: 2, numberValue1: 2, numberValue2: 1 }),
|
|
389
|
+
createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
|
|
390
|
+
)
|
|
391
|
+
const result = await store.find({
|
|
392
|
+
filter: { $and: [{ numberValue1: { $eq: 2 } }, { numberValue2: { $eq: 1 } }] },
|
|
371
393
|
})
|
|
394
|
+
expect(result.length).toBe(1)
|
|
395
|
+
expect(result[0]).toEqual(created[1])
|
|
372
396
|
})
|
|
397
|
+
})
|
|
373
398
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
)
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
}
|
|
384
|
-
expect(result.length).toBe(1)
|
|
385
|
-
expect(result[0]).toEqual(created[0])
|
|
399
|
+
it('should filter $and logical statements with $ne statements', async () => {
|
|
400
|
+
await usingAsync(new Injector(), async (i) => {
|
|
401
|
+
const store = options.createStore(i)
|
|
402
|
+
const { created } = await store.add(
|
|
403
|
+
createMockEntity({ id: 1, numberValue1: 1, numberValue2: 2 }),
|
|
404
|
+
createMockEntity({ id: 2, numberValue1: 2, numberValue2: 3 }),
|
|
405
|
+
createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
|
|
406
|
+
)
|
|
407
|
+
const result = await store.find({
|
|
408
|
+
filter: { $and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $ne: 1 } }] },
|
|
386
409
|
})
|
|
410
|
+
expect(result.length).toBe(1)
|
|
411
|
+
expect(result[0]).toEqual(created[0])
|
|
387
412
|
})
|
|
413
|
+
})
|
|
388
414
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
)
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}
|
|
399
|
-
expect(result.length).toBe(1)
|
|
400
|
-
expect(result[0]).toEqual(created[1])
|
|
415
|
+
it('should filter $and logical statements with $lt/$gt statements', async () => {
|
|
416
|
+
await usingAsync(new Injector(), async (i) => {
|
|
417
|
+
const store = options.createStore(i)
|
|
418
|
+
const { created } = await store.add(
|
|
419
|
+
createMockEntity({ id: 1, numberValue1: 1, numberValue2: 2 }),
|
|
420
|
+
createMockEntity({ id: 2, numberValue1: 2, numberValue2: 3 }),
|
|
421
|
+
createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
|
|
422
|
+
)
|
|
423
|
+
const result = await store.find({
|
|
424
|
+
filter: { $and: [{ numberValue1: { $lt: 3 } }, { numberValue2: { $gt: 2 } }] },
|
|
401
425
|
})
|
|
426
|
+
expect(result.length).toBe(1)
|
|
427
|
+
expect(result[0]).toEqual(created[1])
|
|
402
428
|
})
|
|
429
|
+
})
|
|
403
430
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
)
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
expect(result.length).toBe(1)
|
|
415
|
-
expect(result[0]).toEqual(created[1])
|
|
431
|
+
it('should filter $and logical statements with $lte/$gte statements', async () => {
|
|
432
|
+
await usingAsync(new Injector(), async (i) => {
|
|
433
|
+
const store = options.createStore(i)
|
|
434
|
+
const { created } = await store.add(
|
|
435
|
+
createMockEntity({ id: 1, numberValue1: 1, numberValue2: 1 }),
|
|
436
|
+
createMockEntity({ id: 2, numberValue1: 2, numberValue2: 2 }),
|
|
437
|
+
createMockEntity({ id: 3, numberValue1: 3, numberValue2: 3 }),
|
|
438
|
+
)
|
|
439
|
+
const result = await store.find({
|
|
440
|
+
filter: { $and: [{ numberValue1: { $lte: 2 } }, { numberValue2: { $gte: 2 } }] },
|
|
416
441
|
})
|
|
442
|
+
expect(result.length).toBe(1)
|
|
443
|
+
expect(result[0]).toEqual(created[1])
|
|
417
444
|
})
|
|
418
445
|
})
|
|
446
|
+
})
|
|
447
|
+
|
|
448
|
+
describe('logical $or statements', () => {
|
|
449
|
+
it('should filter logical $or statements with $eq statements', async () => {
|
|
450
|
+
await usingAsync(new Injector(), async (i) => {
|
|
451
|
+
const store = options.createStore(i)
|
|
452
|
+
const { created } = await store.add(
|
|
453
|
+
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
454
|
+
createMockEntity({ id: 2, stringValue1: 'aaa' }),
|
|
455
|
+
createMockEntity({ id: 3, stringValue1: 'bbb' }),
|
|
456
|
+
)
|
|
419
457
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
await usingAsync(options.createStore(), async (store) => {
|
|
423
|
-
const { created } = await store.add(
|
|
424
|
-
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
425
|
-
createMockEntity({ id: 2, stringValue1: 'aaa' }),
|
|
426
|
-
createMockEntity({ id: 3, stringValue1: 'bbb' }),
|
|
427
|
-
)
|
|
428
|
-
|
|
429
|
-
const result = await store.find({
|
|
430
|
-
filter: { $or: [{ stringValue1: { $eq: 'aaa' } }, { stringValue1: { $eq: 'bbb' } }] },
|
|
431
|
-
})
|
|
432
|
-
expect(result.length).toBe(2)
|
|
433
|
-
expect(result).toEqual([created[1], created[2]])
|
|
458
|
+
const result = await store.find({
|
|
459
|
+
filter: { $or: [{ stringValue1: { $eq: 'aaa' } }, { stringValue1: { $eq: 'bbb' } }] },
|
|
434
460
|
})
|
|
461
|
+
expect(result.length).toBe(2)
|
|
462
|
+
expect(result).toEqual([created[1], created[2]])
|
|
435
463
|
})
|
|
464
|
+
})
|
|
465
|
+
|
|
466
|
+
it('should filter logical $or statements with $neq statements', async () => {
|
|
467
|
+
await usingAsync(new Injector(), async (i) => {
|
|
468
|
+
const store = options.createStore(i)
|
|
469
|
+
const { created } = await store.add(
|
|
470
|
+
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
471
|
+
createMockEntity({ id: 2, stringValue1: 'aaa' }),
|
|
472
|
+
createMockEntity({ id: 3, stringValue1: 'bbb' }),
|
|
473
|
+
)
|
|
436
474
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
const { created } = await store.add(
|
|
440
|
-
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
441
|
-
createMockEntity({ id: 2, stringValue1: 'aaa' }),
|
|
442
|
-
createMockEntity({ id: 3, stringValue1: 'bbb' }),
|
|
443
|
-
)
|
|
444
|
-
|
|
445
|
-
const result = await store.find({
|
|
446
|
-
filter: { $or: [{ stringValue1: { $ne: 'aaa' } }, { stringValue1: { $ne: 'bbb' } }] },
|
|
447
|
-
})
|
|
448
|
-
expect(result.length).toBe(3)
|
|
449
|
-
expect(result).toEqual(created)
|
|
475
|
+
const result = await store.find({
|
|
476
|
+
filter: { $or: [{ stringValue1: { $ne: 'aaa' } }, { stringValue1: { $ne: 'bbb' } }] },
|
|
450
477
|
})
|
|
478
|
+
expect(result.length).toBe(3)
|
|
479
|
+
expect(result).toEqual(created)
|
|
451
480
|
})
|
|
452
481
|
})
|
|
482
|
+
})
|
|
483
|
+
|
|
484
|
+
describe('Nested $or and $and logical operators', () => {
|
|
485
|
+
it('should filter $and operators inside $or-s', async () => {
|
|
486
|
+
await usingAsync(new Injector(), async (i) => {
|
|
487
|
+
const store = options.createStore(i)
|
|
488
|
+
const { created } = await store.add(
|
|
489
|
+
createMockEntity({ id: 1, numberValue1: 1, numberValue2: 3, booleanValue: true }),
|
|
490
|
+
createMockEntity({ id: 2, numberValue1: 2, numberValue2: 2, booleanValue: false }),
|
|
491
|
+
createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1, booleanValue: true }),
|
|
492
|
+
)
|
|
453
493
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
$or: [
|
|
466
|
-
{
|
|
467
|
-
$and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $eq: 1 } }],
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
$and: [{ numberValue1: { $ne: 3 } }, { booleanValue: { $ne: true } }],
|
|
471
|
-
},
|
|
472
|
-
],
|
|
473
|
-
},
|
|
474
|
-
})
|
|
475
|
-
expect(result.length).toBe(2)
|
|
476
|
-
expect(result).toEqual([created[1], created[2]])
|
|
494
|
+
const result = await store.find({
|
|
495
|
+
filter: {
|
|
496
|
+
$or: [
|
|
497
|
+
{
|
|
498
|
+
$and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $eq: 1 } }],
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
$and: [{ numberValue1: { $ne: 3 } }, { booleanValue: { $ne: true } }],
|
|
502
|
+
},
|
|
503
|
+
],
|
|
504
|
+
},
|
|
477
505
|
})
|
|
506
|
+
expect(result.length).toBe(2)
|
|
507
|
+
expect(result).toEqual([created[1], created[2]])
|
|
478
508
|
})
|
|
479
509
|
})
|
|
480
|
-
}
|
|
510
|
+
})
|
|
481
511
|
|
|
482
512
|
if (!options.skipRegexTests) {
|
|
483
513
|
it('filter should return the corresponding entries with $regex', async () => {
|
|
484
|
-
await usingAsync(
|
|
514
|
+
await usingAsync(new Injector(), async (i) => {
|
|
515
|
+
const store = options.createStore(i)
|
|
485
516
|
await store.add(
|
|
486
517
|
createMockEntity({ id: 1, stringValue1: 'asd' }),
|
|
487
518
|
createMockEntity({ id: 2, stringValue1: 'aaa' }),
|
|
@@ -498,14 +529,16 @@ export const createStoreTest = (options: StoreTestOptions<TestClass, 'id'>) => {
|
|
|
498
529
|
|
|
499
530
|
describe('Count', () => {
|
|
500
531
|
it('Should return the count', async () => {
|
|
501
|
-
await usingAsync(
|
|
532
|
+
await usingAsync(new Injector(), async (i) => {
|
|
533
|
+
const store = options.createStore(i)
|
|
502
534
|
await store.add(createMockEntity(), createMockEntity(), createMockEntity())
|
|
503
535
|
const count = await store.count()
|
|
504
536
|
expect(count).toBe(3)
|
|
505
537
|
})
|
|
506
538
|
})
|
|
507
539
|
it('Should respect filters', async () => {
|
|
508
|
-
await usingAsync(
|
|
540
|
+
await usingAsync(new Injector(), async (i) => {
|
|
541
|
+
const store = options.createStore(i)
|
|
509
542
|
await store.add(
|
|
510
543
|
createMockEntity({ numberValue1: 1 }),
|
|
511
544
|
createMockEntity({ numberValue1: 1 }),
|
package/src/store-manager.ts
CHANGED
|
@@ -15,7 +15,10 @@ export class StoreManager implements Disposable {
|
|
|
15
15
|
const result = await Promise.allSettled([...this.stores.entries()].map(async ([_model, store]) => store.dispose()))
|
|
16
16
|
const fails = result.filter((r) => r.status === 'rejected') as PromiseRejectedResult[]
|
|
17
17
|
if (fails && fails.length) {
|
|
18
|
-
const error = new AggregatedError(
|
|
18
|
+
const error = new AggregatedError(
|
|
19
|
+
`There was an error during disposing ${fails.length} stores: ${fails.map((f) => f.reason)}`,
|
|
20
|
+
fails,
|
|
21
|
+
)
|
|
19
22
|
throw error
|
|
20
23
|
}
|
|
21
24
|
}
|