@furystack/core 10.4.0 → 10.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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;AAGvD,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,MAAM,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAChD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,eAAO,MAAM,eAAe,YAAa,iBAAiB,SAAS,EAAE,IAAI,CAAC,SA0ezE,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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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
- if (!options.skipAdvancedTests) {
264
- describe('logical $and statements', () => {
265
- it('should filter $and logical statements with $eq statements', async () => {
266
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
267
- 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 }));
268
- const result = await store.find({
269
- filter: { $and: [{ numberValue1: { $eq: 2 } }, { numberValue2: { $eq: 1 } }] },
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
- it('should filter $and logical statements with $ne statements', async () => {
276
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
277
- 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 }));
278
- const result = await store.find({
279
- filter: { $and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $ne: 1 } }] },
280
- });
281
- expect(result.length).toBe(1);
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
- it('should filter $and logical statements with $lt/$gt statements', async () => {
286
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
287
- 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 }));
288
- const result = await store.find({
289
- filter: { $and: [{ numberValue1: { $lt: 3 } }, { numberValue2: { $gt: 2 } }] },
290
- });
291
- expect(result.length).toBe(1);
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
- it('should filter $and logical statements with $lte/$gte statements', async () => {
296
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
297
- 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 }));
298
- const result = await store.find({
299
- filter: { $and: [{ numberValue1: { $lte: 2 } }, { numberValue2: { $gte: 2 } }] },
300
- });
301
- expect(result.length).toBe(1);
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
- describe('logical $or statements', () => {
307
- it('should filter logical $or statements with $eq statements', async () => {
308
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
309
- 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' }));
310
- const result = await store.find({
311
- filter: { $or: [{ stringValue1: { $eq: 'aaa' } }, { stringValue1: { $eq: 'bbb' } }] },
312
- });
313
- expect(result.length).toBe(2);
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
- it('should filter logical $or statements with $neq statements', async () => {
318
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
319
- 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' }));
320
- const result = await store.find({
321
- filter: { $or: [{ stringValue1: { $ne: 'aaa' } }, { stringValue1: { $ne: 'bbb' } }] },
322
- });
323
- expect(result.length).toBe(3);
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
- describe('Nested $or and $and logical operators', () => {
329
- it('should filter $and operators inside $or-s', async () => {
330
- await (0, utils_1.usingAsync)(options.createStore(), async (store) => {
331
- 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 }));
332
- const result = await store.find({
333
- filter: {
334
- $or: [
335
- {
336
- $and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $eq: 1 } }],
337
- },
338
- {
339
- $and: [{ numberValue1: { $ne: 3 } }, { booleanValue: { $ne: true } }],
340
- },
341
- ],
342
- },
343
- });
344
- expect(result.length).toBe(2);
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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)(options.createStore(), async (store) => {
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;IAiD1B,QAAQ,EAAE,QAAQ;IAhDrC;;OAEG;IACU,OAAO;IAQpB,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"}
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"}
@@ -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.`, fails);
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;IAiDvB,YAAmB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QArC7B,WAAM,GAAyD,IAAI,GAAG,EAAE,CAAA;IAqCxC,CAAC;IAhDzC;;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,CAAC,uCAAuC,KAAK,CAAC,MAAM,UAAU,EAAE,KAAK,CAAC,CAAA;YACvG,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;AAlDY,YAAY;IADxB,IAAA,mBAAU,EAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;kDAkDP,iBAAQ;GAjD1B,YAAY,CAkDxB;AAlDY,oCAAY"}
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"}
@@ -50,6 +50,7 @@ describe('StoreManager', () => {
50
50
  expect(error).toBeInstanceOf(errors_1.AggregatedError);
51
51
  expect(error.rejections).toHaveLength(1);
52
52
  }
53
+ i.cachedSingletons.clear();
53
54
  });
54
55
  });
55
56
  });
@@ -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;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
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.0",
3
+ "version": "10.4.1",
4
4
  "description": "Core FuryStack package",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -29,14 +29,14 @@
29
29
  "homepage": "https://github.com/furystack/furystack",
30
30
  "devDependencies": {
31
31
  "@types/jest": "^27.0.3",
32
- "@types/node": "^16.11.11"
32
+ "@types/node": "^16.11.12"
33
33
  },
34
34
  "dependencies": {
35
- "@furystack/inject": "^4.0.76",
36
- "@furystack/utils": "^1.2.46",
35
+ "@furystack/inject": "^5.0.0",
36
+ "@furystack/utils": "^2.0.0",
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": "b237a004ef9cfb654c49df3f131a98c134bff889"
41
+ "gitHead": "8a1860a227691def1a94e8de5e95a7c5067356cc"
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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
- if (!options.skipAdvancedTests) {
358
- describe('logical $and statements', () => {
359
- it('should filter $and logical statements with $eq statements', async () => {
360
- await usingAsync(options.createStore(), async (store) => {
361
- const { created } = await store.add(
362
- createMockEntity({ id: 1, numberValue1: 1, numberValue2: 1 }),
363
- createMockEntity({ id: 2, numberValue1: 2, numberValue2: 1 }),
364
- createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
365
- )
366
- const result = await store.find({
367
- filter: { $and: [{ numberValue1: { $eq: 2 } }, { numberValue2: { $eq: 1 } }] },
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
- it('should filter $and logical statements with $ne statements', async () => {
375
- await usingAsync(options.createStore(), async (store) => {
376
- const { created } = await store.add(
377
- createMockEntity({ id: 1, numberValue1: 1, numberValue2: 2 }),
378
- createMockEntity({ id: 2, numberValue1: 2, numberValue2: 3 }),
379
- createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
380
- )
381
- const result = await store.find({
382
- filter: { $and: [{ numberValue1: { $ne: 2 } }, { numberValue2: { $ne: 1 } }] },
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
- it('should filter $and logical statements with $lt/$gt statements', async () => {
390
- await usingAsync(options.createStore(), async (store) => {
391
- const { created } = await store.add(
392
- createMockEntity({ id: 1, numberValue1: 1, numberValue2: 2 }),
393
- createMockEntity({ id: 2, numberValue1: 2, numberValue2: 3 }),
394
- createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1 }),
395
- )
396
- const result = await store.find({
397
- filter: { $and: [{ numberValue1: { $lt: 3 } }, { numberValue2: { $gt: 2 } }] },
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
- it('should filter $and logical statements with $lte/$gte statements', async () => {
405
- await usingAsync(options.createStore(), async (store) => {
406
- const { created } = await store.add(
407
- createMockEntity({ id: 1, numberValue1: 1, numberValue2: 1 }),
408
- createMockEntity({ id: 2, numberValue1: 2, numberValue2: 2 }),
409
- createMockEntity({ id: 3, numberValue1: 3, numberValue2: 3 }),
410
- )
411
- const result = await store.find({
412
- filter: { $and: [{ numberValue1: { $lte: 2 } }, { numberValue2: { $gte: 2 } }] },
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
- describe('logical $or statements', () => {
421
- it('should filter logical $or statements with $eq statements', async () => {
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
- it('should filter logical $or statements with $neq statements', async () => {
438
- await usingAsync(options.createStore(), async (store) => {
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
- describe('Nested $or and $and logical operators', () => {
455
- it('should filter $and operators inside $or-s', async () => {
456
- await usingAsync(options.createStore(), async (store) => {
457
- const { created } = await store.add(
458
- createMockEntity({ id: 1, numberValue1: 1, numberValue2: 3, booleanValue: true }),
459
- createMockEntity({ id: 2, numberValue1: 2, numberValue2: 2, booleanValue: false }),
460
- createMockEntity({ id: 3, numberValue1: 3, numberValue2: 1, booleanValue: true }),
461
- )
462
-
463
- const result = await store.find({
464
- filter: {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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(options.createStore(), async (store) => {
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 }),
@@ -65,6 +65,7 @@ describe('StoreManager', () => {
65
65
  expect(error).toBeInstanceOf(AggregatedError)
66
66
  expect((error as AggregatedError).rejections).toHaveLength(1)
67
67
  }
68
+ i.cachedSingletons.clear()
68
69
  })
69
70
  })
70
71
  })
@@ -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(`There was an error during disposing ${fails.length} stores.`, fails)
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
  }