@expo/entity-testing-utils 0.46.0 → 0.48.0

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.
Files changed (29) hide show
  1. package/package.json +6 -3
  2. package/build/src/__testfixtures__/DateIDTestEntity.d.ts +0 -14
  3. package/build/src/__testfixtures__/DateIDTestEntity.js +0 -42
  4. package/build/src/__testfixtures__/DateIDTestEntity.js.map +0 -1
  5. package/build/src/__testfixtures__/SimpleTestEntity.d.ts +0 -15
  6. package/build/src/__testfixtures__/SimpleTestEntity.js +0 -42
  7. package/build/src/__testfixtures__/SimpleTestEntity.js.map +0 -1
  8. package/build/src/__testfixtures__/TestEntity.d.ts +0 -25
  9. package/build/src/__testfixtures__/TestEntity.js +0 -92
  10. package/build/src/__testfixtures__/TestEntity.js.map +0 -1
  11. package/build/src/__testfixtures__/TestEntityNumberKey.d.ts +0 -14
  12. package/build/src/__testfixtures__/TestEntityNumberKey.js +0 -42
  13. package/build/src/__testfixtures__/TestEntityNumberKey.js.map +0 -1
  14. package/build/src/__tests__/FileConsistentcyWithEntity-test.d.ts +0 -1
  15. package/build/src/__tests__/FileConsistentcyWithEntity-test.js +0 -27
  16. package/build/src/__tests__/FileConsistentcyWithEntity-test.js.map +0 -1
  17. package/build/src/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
  18. package/build/src/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -37
  19. package/build/src/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
  20. package/build/src/__tests__/StubCacheAdapter-test.d.ts +0 -1
  21. package/build/src/__tests__/StubCacheAdapter-test.js +0 -76
  22. package/build/src/__tests__/StubCacheAdapter-test.js.map +0 -1
  23. package/build/src/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
  24. package/build/src/__tests__/StubDatabaseAdapter-test.js +0 -427
  25. package/build/src/__tests__/StubDatabaseAdapter-test.js.map +0 -1
  26. package/build/src/__tests__/TSMockitoExtensions-test.d.ts +0 -1
  27. package/build/src/__tests__/TSMockitoExtensions-test.js +0 -50
  28. package/build/src/__tests__/TSMockitoExtensions-test.js.map +0 -1
  29. package/build/tsconfig.tsbuildinfo +0 -1
@@ -1,427 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const entity_1 = require("@expo/entity");
4
- const globals_1 = require("@jest/globals");
5
- const ts_mockito_1 = require("ts-mockito");
6
- const StubDatabaseAdapter_1 = require("../StubDatabaseAdapter");
7
- const DateIDTestEntity_1 = require("../__testfixtures__/DateIDTestEntity");
8
- const SimpleTestEntity_1 = require("../__testfixtures__/SimpleTestEntity");
9
- const TestEntity_1 = require("../__testfixtures__/TestEntity");
10
- const TestEntityNumberKey_1 = require("../__testfixtures__/TestEntityNumberKey");
11
- (0, globals_1.describe)(StubDatabaseAdapter_1.StubDatabaseAdapter, () => {
12
- (0, globals_1.describe)('fetchManyWhereAsync', () => {
13
- (0, globals_1.it)('fetches many where single', async () => {
14
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
15
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
16
- [
17
- TestEntity_1.testEntityConfiguration.tableName,
18
- [
19
- {
20
- customIdField: 'hello',
21
- testIndexedField: 'h1',
22
- intField: 5,
23
- stringField: 'huh',
24
- dateField: new Date(),
25
- nullableField: null,
26
- },
27
- {
28
- customIdField: 'world',
29
- testIndexedField: 'h2',
30
- intField: 3,
31
- stringField: 'wat',
32
- dateField: new Date(),
33
- nullableField: null,
34
- },
35
- ],
36
- ],
37
- ])));
38
- const results = await databaseAdapter.fetchManyWhereAsync(queryContext, new entity_1.SingleFieldHolder('stringField'), [new entity_1.SingleFieldValueHolder('huh')]);
39
- (0, globals_1.expect)(results.get(new entity_1.SingleFieldValueHolder('huh'))).toHaveLength(1);
40
- });
41
- (0, globals_1.it)('fetches many where composite', async () => {
42
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
43
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
44
- [
45
- TestEntity_1.testEntityConfiguration.tableName,
46
- [
47
- {
48
- customIdField: 'hello',
49
- testIndexedField: 'h1',
50
- intField: 5,
51
- stringField: 'huh',
52
- dateField: new Date(),
53
- nullableField: null,
54
- },
55
- {
56
- customIdField: 'world',
57
- testIndexedField: 'h2',
58
- intField: 3,
59
- stringField: 'wat',
60
- dateField: new Date(),
61
- nullableField: null,
62
- },
63
- ],
64
- ],
65
- ])));
66
- const results = await databaseAdapter.fetchManyWhereAsync(queryContext, new entity_1.CompositeFieldHolder(['stringField', 'intField']), [new entity_1.CompositeFieldValueHolder({ stringField: 'huh', intField: 5 })]);
67
- (0, globals_1.expect)(results.get(new entity_1.CompositeFieldValueHolder({ stringField: 'huh', intField: 5 }))).toHaveLength(1);
68
- const results2 = await databaseAdapter.fetchManyWhereAsync(queryContext, new entity_1.CompositeFieldHolder(['stringField', 'intField']), [new entity_1.CompositeFieldValueHolder({ stringField: 'not-in-db', intField: 5 })]);
69
- (0, globals_1.expect)(results2.get(new entity_1.CompositeFieldValueHolder({ stringField: 'not-in-db', intField: 5 }))).toHaveLength(0);
70
- });
71
- });
72
- (0, globals_1.describe)('fetchManyByFieldEqualityConjunctionAsync', () => {
73
- (0, globals_1.it)('supports conjuntions and query modifiers', async () => {
74
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
75
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
76
- [
77
- TestEntity_1.testEntityConfiguration.tableName,
78
- [
79
- {
80
- customIdField: 'hello',
81
- testIndexedField: 'h1',
82
- intField: 3,
83
- stringField: 'a',
84
- dateField: new Date(),
85
- nullableField: null,
86
- },
87
- {
88
- customIdField: 'world',
89
- testIndexedField: 'h2',
90
- intField: 3,
91
- stringField: 'b',
92
- dateField: new Date(),
93
- nullableField: null,
94
- },
95
- {
96
- customIdField: 'world',
97
- testIndexedField: 'h2',
98
- intField: 3,
99
- stringField: 'c',
100
- dateField: new Date(),
101
- nullableField: null,
102
- },
103
- ],
104
- ],
105
- ])));
106
- const results = await databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, [
107
- {
108
- fieldName: 'customIdField',
109
- fieldValues: ['hello', 'world'],
110
- },
111
- {
112
- fieldName: 'intField',
113
- fieldValue: 3,
114
- },
115
- ], {
116
- limit: 2,
117
- offset: 1,
118
- orderBy: [
119
- {
120
- fieldName: 'stringField',
121
- order: entity_1.OrderByOrdering.DESCENDING,
122
- },
123
- ],
124
- });
125
- (0, globals_1.expect)(results).toHaveLength(2);
126
- (0, globals_1.expect)(results.map((e) => e.stringField)).toEqual(['b', 'a']);
127
- });
128
- (0, globals_1.it)('supports multiple order bys', async () => {
129
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
130
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
131
- [
132
- TestEntity_1.testEntityConfiguration.tableName,
133
- [
134
- {
135
- customIdField: 'hello',
136
- testIndexedField: 'h1',
137
- intField: 3,
138
- stringField: 'a',
139
- dateField: new Date(),
140
- nullableField: null,
141
- },
142
- {
143
- customIdField: 'world',
144
- testIndexedField: 'h2',
145
- intField: 3,
146
- stringField: 'b',
147
- dateField: new Date(),
148
- nullableField: null,
149
- },
150
- {
151
- customIdField: 'world',
152
- testIndexedField: 'h2',
153
- intField: 3,
154
- stringField: 'c',
155
- dateField: new Date(),
156
- nullableField: null,
157
- },
158
- ],
159
- ],
160
- ])));
161
- const results = await databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, [
162
- {
163
- fieldName: 'intField',
164
- fieldValue: 3,
165
- },
166
- ], {
167
- orderBy: [
168
- {
169
- fieldName: 'intField',
170
- order: entity_1.OrderByOrdering.DESCENDING,
171
- },
172
- {
173
- fieldName: 'stringField',
174
- order: entity_1.OrderByOrdering.DESCENDING,
175
- },
176
- ],
177
- });
178
- (0, globals_1.expect)(results).toHaveLength(3);
179
- (0, globals_1.expect)(results.map((e) => e.stringField)).toEqual(['c', 'b', 'a']);
180
- });
181
- (0, globals_1.it)('supports null field values', async () => {
182
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
183
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
184
- [
185
- TestEntity_1.testEntityConfiguration.tableName,
186
- [
187
- {
188
- customIdField: '1',
189
- testIndexedField: 'h1',
190
- intField: 1,
191
- stringField: 'a',
192
- dateField: new Date(),
193
- nullableField: 'a',
194
- },
195
- {
196
- customIdField: '2',
197
- testIndexedField: 'h2',
198
- intField: 2,
199
- stringField: 'a',
200
- dateField: new Date(),
201
- nullableField: 'b',
202
- },
203
- {
204
- customIdField: '3',
205
- testIndexedField: 'h3',
206
- intField: 3,
207
- stringField: 'a',
208
- dateField: new Date(),
209
- nullableField: null,
210
- },
211
- {
212
- customIdField: '4',
213
- testIndexedField: 'h4',
214
- intField: 4,
215
- stringField: 'b',
216
- dateField: new Date(),
217
- nullableField: null,
218
- },
219
- ],
220
- ],
221
- ])));
222
- const results = await databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, [{ fieldName: 'nullableField', fieldValue: null }], {});
223
- (0, globals_1.expect)(results).toHaveLength(2);
224
- (0, globals_1.expect)(results[0].nullableField).toBeNull();
225
- const results2 = await databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, [
226
- { fieldName: 'nullableField', fieldValues: ['a', null] },
227
- { fieldName: 'stringField', fieldValue: 'a' },
228
- ], {
229
- orderBy: [
230
- {
231
- fieldName: 'nullableField',
232
- order: entity_1.OrderByOrdering.DESCENDING,
233
- },
234
- ],
235
- });
236
- (0, globals_1.expect)(results2).toHaveLength(2);
237
- (0, globals_1.expect)(results2.map((e) => e.nullableField)).toEqual([null, 'a']);
238
- });
239
- });
240
- (0, globals_1.describe)('fetchManyByRawWhereClauseAsync', () => {
241
- (0, globals_1.it)('throws because it is unsupported', async () => {
242
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
243
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, new Map());
244
- await (0, globals_1.expect)(databaseAdapter.fetchManyByRawWhereClauseAsync(queryContext, '', [], {})).rejects.toThrow();
245
- });
246
- });
247
- (0, globals_1.describe)('insertAsync', () => {
248
- (0, globals_1.it)('inserts a record', async () => {
249
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
250
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, new Map());
251
- const result = await databaseAdapter.insertAsync(queryContext, {
252
- stringField: 'hello',
253
- });
254
- (0, globals_1.expect)(result).toMatchObject({
255
- stringField: 'hello',
256
- });
257
- (0, globals_1.expect)(databaseAdapter.getObjectCollectionForTable(TestEntity_1.testEntityConfiguration.tableName)).toHaveLength(1);
258
- });
259
- (0, globals_1.it)('inserts a record with valid v7 id', async () => {
260
- const expectedTime = new Date('2024-06-03T20:16:33.761Z');
261
- globals_1.jest.useFakeTimers({
262
- now: expectedTime,
263
- });
264
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
265
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, new Map());
266
- const result = await databaseAdapter.insertAsync(queryContext, {
267
- stringField: 'hello',
268
- });
269
- const ts = getTimeFromUUIDv7(result.customIdField);
270
- (0, globals_1.expect)(ts).toEqual(expectedTime);
271
- });
272
- });
273
- (0, globals_1.describe)('updateAsync', () => {
274
- (0, globals_1.it)('updates a record', async () => {
275
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
276
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
277
- [
278
- TestEntity_1.testEntityConfiguration.tableName,
279
- [
280
- {
281
- customIdField: 'hello',
282
- testIndexedField: 'h1',
283
- intField: 3,
284
- stringField: 'a',
285
- dateField: new Date(),
286
- nullableField: null,
287
- },
288
- ],
289
- ],
290
- ])));
291
- const result = await databaseAdapter.updateAsync(queryContext, 'customIdField', 'hello', {
292
- stringField: 'b',
293
- });
294
- (0, globals_1.expect)(result).toMatchObject({
295
- stringField: 'b',
296
- testIndexedField: 'h1',
297
- });
298
- });
299
- (0, globals_1.it)('throws error when empty update to match common DBMS behavior', async () => {
300
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
301
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
302
- [
303
- TestEntity_1.testEntityConfiguration.tableName,
304
- [
305
- {
306
- customIdField: 'hello',
307
- testIndexedField: 'h1',
308
- intField: 3,
309
- stringField: 'a',
310
- dateField: new Date(),
311
- nullableField: null,
312
- },
313
- ],
314
- ],
315
- ])));
316
- await (0, globals_1.expect)(databaseAdapter.updateAsync(queryContext, 'customIdField', 'hello', {})).rejects.toThrow(`Empty update (custom_id = hello)`);
317
- });
318
- });
319
- (0, globals_1.describe)('deleteAsync', () => {
320
- (0, globals_1.it)('deletes an object', async () => {
321
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
322
- const databaseAdapter = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.StubDatabaseAdapter.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
323
- [
324
- TestEntity_1.testEntityConfiguration.tableName,
325
- [
326
- {
327
- customIdField: 'hello',
328
- testIndexedField: 'h1',
329
- intField: 3,
330
- stringField: 'a',
331
- dateField: new Date(),
332
- nullableField: null,
333
- },
334
- ],
335
- ],
336
- ])));
337
- await databaseAdapter.deleteAsync(queryContext, 'customIdField', 'hello');
338
- (0, globals_1.expect)(databaseAdapter.getObjectCollectionForTable(TestEntity_1.testEntityConfiguration.tableName)).toHaveLength(0);
339
- });
340
- });
341
- (0, globals_1.it)('supports string and number IDs', async () => {
342
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(entity_1.EntityQueryContext));
343
- const databaseAdapter1 = new StubDatabaseAdapter_1.StubDatabaseAdapter(SimpleTestEntity_1.simpleTestEntityConfiguration, new Map());
344
- const insertedObject1 = await databaseAdapter1.insertAsync(queryContext, {});
345
- (0, globals_1.expect)(typeof insertedObject1.id).toBe('string');
346
- const databaseAdapter2 = new StubDatabaseAdapter_1.StubDatabaseAdapter(TestEntityNumberKey_1.numberKeyEntityConfiguration, new Map());
347
- const insertedObject2 = await databaseAdapter2.insertAsync(queryContext, {});
348
- (0, globals_1.expect)(typeof insertedObject2.id).toBe('number');
349
- const databaseAdapter3 = new StubDatabaseAdapter_1.StubDatabaseAdapter(DateIDTestEntity_1.dateIDTestEntityConfiguration, new Map());
350
- await (0, globals_1.expect)(databaseAdapter3.insertAsync(queryContext, {})).rejects.toThrow('Unsupported ID type for StubDatabaseAdapter: DateField');
351
- });
352
- (0, globals_1.describe)('compareByOrderBys', () => {
353
- (0, globals_1.describe)('comparison', () => {
354
- globals_1.it.each([
355
- // nulls compare with 0
356
- [entity_1.OrderByOrdering.DESCENDING, null, 0, -1],
357
- [entity_1.OrderByOrdering.ASCENDING, null, 0, 1],
358
- [entity_1.OrderByOrdering.DESCENDING, 0, null, 1],
359
- [entity_1.OrderByOrdering.ASCENDING, 0, null, -1],
360
- // nulls compare with nulls
361
- [entity_1.OrderByOrdering.DESCENDING, null, null, 0],
362
- [entity_1.OrderByOrdering.ASCENDING, null, null, 0],
363
- // nulls compare with -1
364
- [entity_1.OrderByOrdering.DESCENDING, null, -1, -1],
365
- [entity_1.OrderByOrdering.ASCENDING, null, -1, 1],
366
- [entity_1.OrderByOrdering.DESCENDING, -1, null, 1],
367
- [entity_1.OrderByOrdering.ASCENDING, -1, null, -1],
368
- // basic compares
369
- [entity_1.OrderByOrdering.ASCENDING, 'a', 'b', -1],
370
- [entity_1.OrderByOrdering.ASCENDING, 'b', 'a', 1],
371
- [entity_1.OrderByOrdering.DESCENDING, 'a', 'b', 1],
372
- [entity_1.OrderByOrdering.DESCENDING, 'b', 'a', -1],
373
- ])('case (%p; %p; %p)', (order, v1, v2, expectedResult) => {
374
- (0, globals_1.expect)(StubDatabaseAdapter_1.StubDatabaseAdapter['compareByOrderBys']([
375
- {
376
- columnName: 'hello',
377
- order,
378
- },
379
- ], {
380
- hello: v1,
381
- }, {
382
- hello: v2,
383
- })).toEqual(expectedResult);
384
- });
385
- (0, globals_1.it)('works for empty', () => {
386
- (0, globals_1.expect)(StubDatabaseAdapter_1.StubDatabaseAdapter['compareByOrderBys']([], {
387
- hello: 'test',
388
- }, {
389
- hello: 'blah',
390
- })).toEqual(0);
391
- });
392
- });
393
- (0, globals_1.describe)('recursing', () => {
394
- (0, globals_1.expect)(StubDatabaseAdapter_1.StubDatabaseAdapter['compareByOrderBys']([
395
- {
396
- columnName: 'hello',
397
- order: entity_1.OrderByOrdering.ASCENDING,
398
- },
399
- {
400
- columnName: 'world',
401
- order: entity_1.OrderByOrdering.ASCENDING,
402
- },
403
- ], {
404
- hello: 'a',
405
- world: 1,
406
- }, {
407
- hello: 'a',
408
- world: 2,
409
- })).toEqual(-1);
410
- });
411
- });
412
- });
413
- const UUIDV7_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
414
- /**
415
- * Returns the Date object encoded in the first 48 bits of the given UUIDv7.
416
- * @throws TypeError if the UUID is not version 7
417
- */
418
- function getTimeFromUUIDv7(uuid) {
419
- if (!UUIDV7_REGEX.test(uuid)) {
420
- throw new TypeError(`UUID must be version 7 to get its timestamp`);
421
- }
422
- // The first 48 bits = 12 hex characters of the UUID encode the timestamp in big endian
423
- const hexCharacters = uuid.replaceAll('-', '').split('', 12);
424
- const milliseconds = hexCharacters.reduce((milliseconds, character) => milliseconds * 16 + parseInt(character, 16), 0);
425
- return new Date(milliseconds);
426
- }
427
- //# sourceMappingURL=StubDatabaseAdapter-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StubDatabaseAdapter-test.js","sourceRoot":"","sources":["../../../src/__tests__/StubDatabaseAdapter-test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const entity_1 = require("@expo/entity");
4
- const globals_1 = require("@jest/globals");
5
- const TSMockitoExtensions_1 = require("../TSMockitoExtensions");
6
- (0, globals_1.describe)(TSMockitoExtensions_1.deepEqualEntityAware, () => {
7
- (0, globals_1.it)('should return a DeepEqualEntityAwareMatcher', () => {
8
- const actual = (0, TSMockitoExtensions_1.deepEqualEntityAware)('foo');
9
- (0, globals_1.expect)(actual).toBeInstanceOf(TSMockitoExtensions_1.DeepEqualEntityAwareMatcher);
10
- (0, globals_1.expect)(actual.toString()).toBe('deepEqualEntityAware(foo)');
11
- const actual2 = (0, TSMockitoExtensions_1.deepEqualEntityAware)(['bar']);
12
- (0, globals_1.expect)(actual2.toString()).toBe('deepEqualEntityAware([bar])');
13
- });
14
- });
15
- (0, globals_1.describe)(TSMockitoExtensions_1.isEqualWithEntityAware, () => {
16
- (0, globals_1.it)('works for basic cases', () => {
17
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)('foo', 'foo')).toBe(true);
18
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)('foo', 'bar')).toBe(false);
19
- const obj1 = { foo: 'bar' };
20
- const obj2 = { foo: 'bar' };
21
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(obj1, obj2)).toBe(true);
22
- });
23
- (0, globals_1.it)('works for nested matchers', () => {
24
- const obj1 = { foo: (0, TSMockitoExtensions_1.deepEqualEntityAware)('bar') };
25
- const obj2 = { foo: 'bar' };
26
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(obj1, obj2)).toBe(true);
27
- });
28
- (0, globals_1.it)('works for SingleFieldHolder', () => {
29
- const singleFieldHolder1 = new entity_1.SingleFieldHolder('foo');
30
- const singleFieldHolder2 = new entity_1.SingleFieldHolder('foo');
31
- const singleFieldHolder3 = new entity_1.SingleFieldHolder('bar');
32
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(singleFieldHolder1, singleFieldHolder2)).toBe(true);
33
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(singleFieldHolder1, singleFieldHolder3)).toBe(false);
34
- });
35
- (0, globals_1.it)('works for SingleFieldValueHolder', () => {
36
- const singleFieldValueHolder1 = new entity_1.SingleFieldValueHolder('foo');
37
- const singleFieldValueHolder2 = new entity_1.SingleFieldValueHolder('foo');
38
- const singleFieldValueHolder3 = new entity_1.SingleFieldValueHolder('bar');
39
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(singleFieldValueHolder1, singleFieldValueHolder2)).toBe(true);
40
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(singleFieldValueHolder1, singleFieldValueHolder3)).toBe(false);
41
- });
42
- (0, globals_1.it)('works for SerializableKeyMap', () => {
43
- const map1 = new entity_1.SingleFieldValueHolderMap(new Map([[new entity_1.SingleFieldValueHolder('foo'), 'bar']]));
44
- const map2 = new entity_1.SingleFieldValueHolderMap(new Map([[new entity_1.SingleFieldValueHolder('foo'), 'bar']]));
45
- const map3 = new entity_1.SingleFieldValueHolderMap(new Map([[new entity_1.SingleFieldValueHolder('foo2'), 'bar']]));
46
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(map1, map2)).toBe(true);
47
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(map1, map3)).toBe(false);
48
- });
49
- });
50
- //# sourceMappingURL=TSMockitoExtensions-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TSMockitoExtensions-test.js","sourceRoot":"","sources":["../../../src/__tests__/TSMockitoExtensions-test.ts"],"names":[],"mappings":"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"}