@expo/entity 0.39.0 → 0.41.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.
- package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +99 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js +122 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
- package/build/AuthorizationResultBasedEntityLoader.d.ts +1 -1
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/{EntityMutator.d.ts → AuthorizationResultBasedEntityMutator.d.ts} +5 -17
- package/build/{EntityMutator.js → AuthorizationResultBasedEntityMutator.js} +22 -48
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -0
- package/build/EnforcingEntityAssociationLoader.d.ts +79 -0
- package/build/EnforcingEntityAssociationLoader.js +62 -0
- package/build/EnforcingEntityAssociationLoader.js.map +1 -0
- package/build/EnforcingEntityCreator.d.ts +24 -0
- package/build/EnforcingEntityCreator.js +32 -0
- package/build/EnforcingEntityCreator.js.map +1 -0
- package/build/EnforcingEntityDeleter.d.ts +17 -0
- package/build/EnforcingEntityDeleter.js +22 -0
- package/build/EnforcingEntityDeleter.js.map +1 -0
- package/build/EnforcingEntityUpdater.d.ts +24 -0
- package/build/EnforcingEntityUpdater.js +32 -0
- package/build/EnforcingEntityUpdater.js.map +1 -0
- package/build/Entity.d.ts +26 -8
- package/build/Entity.js +38 -25
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.d.ts +12 -91
- package/build/EntityAssociationLoader.js +20 -126
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCreator.d.ts +27 -0
- package/build/EntityCreator.js +39 -0
- package/build/EntityCreator.js.map +1 -0
- package/build/EntityDeleter.d.ts +27 -0
- package/build/EntityDeleter.js +40 -0
- package/build/EntityDeleter.js.map +1 -0
- package/build/EntityLoader.d.ts +4 -14
- package/build/EntityLoader.js +7 -20
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +2 -2
- package/build/EntityLoaderFactory.js +4 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutatorFactory.d.ts +4 -4
- package/build/EntityMutatorFactory.js +4 -4
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.d.ts +3 -3
- package/build/EntitySecondaryCacheLoader.js +1 -3
- package/build/EntitySecondaryCacheLoader.js.map +1 -1
- package/build/EntityUpdater.d.ts +27 -0
- package/build/EntityUpdater.js +40 -0
- package/build/EntityUpdater.js.map +1 -0
- package/build/ReadonlyEntity.d.ts +24 -5
- package/build/ReadonlyEntity.js +33 -7
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
- package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
- package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
- package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +242 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/{EntityLoader-constructor-test.js → AuthorizationResultBasedEntityLoader-constructor-test.js} +10 -10
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +401 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js +115 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/Entity-test.js +63 -5
- package/build/__tests__/Entity-test.js.map +1 -1
- package/build/__tests__/EntityAssociationLoader-test.js +14 -184
- package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js +34 -20
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityCompanion-test.js +17 -7
- package/build/__tests__/EntityCompanion-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +57 -71
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityLoader-test.js +22 -386
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +6 -9
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
- package/build/__tests__/EntityMutator-test.js +67 -70
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +17 -7
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +7 -7
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +47 -81
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
- package/build/__tests__/ReadonlyEntity-test.js +40 -7
- package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +6 -10
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +10 -22
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
- package/build/errors/EntityCacheAdapterError.js +17 -7
- package/build/errors/EntityCacheAdapterError.js.map +1 -1
- package/build/errors/EntityDatabaseAdapterError.js +17 -7
- package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
- package/build/errors/EntityInvalidFieldValueError.js +17 -7
- package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
- package/build/errors/EntityNotAuthorizedError.js +17 -7
- package/build/errors/EntityNotAuthorizedError.js.map +1 -1
- package/build/errors/EntityNotFoundError.js +17 -7
- package/build/errors/EntityNotFoundError.js.map +1 -1
- package/build/index.d.ts +19 -11
- package/build/index.js +24 -7
- package/build/index.js.map +1 -1
- package/build/internal/__tests__/EntityDataManager-test.js +42 -32
- package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +17 -7
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/utils/EntityPrivacyUtils.js +4 -8
- package/build/utils/EntityPrivacyUtils.js.map +1 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.js +38 -28
- package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +1 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +5 -5
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +1 -1
- package/build/utils/testing/StubDatabaseAdapter.js +17 -7
- package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
- package/build/utils/testing/StubQueryContextProvider.d.ts +1 -3
- package/build/utils/testing/StubQueryContextProvider.js +1 -3
- package/build/utils/testing/StubQueryContextProvider.js.map +1 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js +2 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +1 -1
- package/package.json +19 -3
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +490 -0
- package/src/AuthorizationResultBasedEntityLoader.ts +1 -1
- package/src/{EntityMutator.ts → AuthorizationResultBasedEntityMutator.ts} +62 -58
- package/src/EnforcingEntityAssociationLoader.ts +390 -0
- package/src/EnforcingEntityCreator.ts +55 -0
- package/src/EnforcingEntityDeleter.ts +44 -0
- package/src/EnforcingEntityUpdater.ts +55 -0
- package/src/Entity.ts +140 -29
- package/src/EntityAssociationLoader.ts +38 -495
- package/src/EntityCreator.ts +73 -0
- package/src/EntityDeleter.ts +73 -0
- package/src/EntityLoader.ts +10 -49
- package/src/EntityLoaderFactory.ts +20 -3
- package/src/EntityMutatorFactory.ts +32 -7
- package/src/EntitySecondaryCacheLoader.ts +5 -7
- package/src/EntityUpdater.ts +73 -0
- package/src/ReadonlyEntity.ts +121 -7
- package/src/ViewerScopedEntityLoaderFactory.ts +9 -2
- package/src/ViewerScopedEntityMutatorFactory.ts +29 -4
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +323 -0
- package/src/__tests__/{EntityLoader-constructor-test.ts → AuthorizationResultBasedEntityLoader-constructor-test.ts} +16 -9
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +730 -0
- package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +253 -0
- package/src/__tests__/Entity-test.ts +77 -5
- package/src/__tests__/EntityAssociationLoader-test.ts +15 -260
- package/src/__tests__/EntityCommonUseCases-test.ts +24 -15
- package/src/__tests__/EntityEdges-test.ts +44 -64
- package/src/__tests__/EntityLoader-test.ts +29 -681
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +8 -9
- package/src/__tests__/EntityMutator-test.ts +116 -103
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -7
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +65 -81
- package/src/__tests__/ReadonlyEntity-test.ts +47 -7
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +15 -15
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +19 -22
- package/src/index.ts +19 -11
- package/src/internal/__tests__/EntityDataManager-test.ts +25 -25
- package/src/utils/EntityPrivacyUtils.ts +10 -13
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +21 -23
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +5 -5
- package/src/utils/testing/StubQueryContextProvider.ts +1 -3
- package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +3 -1
- package/build/EntityMutator.js.map +0 -1
- package/build/__tests__/EntityLoader-constructor-test.js.map +0 -1
- /package/build/__tests__/{EntityLoader-constructor-test.d.ts → AuthorizationResultBasedEntityLoader-constructor-test.d.ts} +0 -0
|
@@ -74,11 +74,11 @@ describe(EntityDataManager, () => {
|
|
|
74
74
|
const entityDataManager = new EntityDataManager(
|
|
75
75
|
databaseAdapter,
|
|
76
76
|
entityCache,
|
|
77
|
-
StubQueryContextProvider,
|
|
77
|
+
new StubQueryContextProvider(),
|
|
78
78
|
new NoOpEntityMetricsAdapter(),
|
|
79
79
|
TestEntity.name,
|
|
80
80
|
);
|
|
81
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
81
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
82
82
|
|
|
83
83
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
|
|
84
84
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
@@ -122,11 +122,11 @@ describe(EntityDataManager, () => {
|
|
|
122
122
|
const entityDataManager = new EntityDataManager(
|
|
123
123
|
databaseAdapter,
|
|
124
124
|
entityCache,
|
|
125
|
-
StubQueryContextProvider,
|
|
125
|
+
new StubQueryContextProvider(),
|
|
126
126
|
new NoOpEntityMetricsAdapter(),
|
|
127
127
|
TestEntity.name,
|
|
128
128
|
);
|
|
129
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
129
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
130
130
|
|
|
131
131
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
|
|
132
132
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
@@ -170,16 +170,16 @@ describe(EntityDataManager, () => {
|
|
|
170
170
|
const entityDataManager = new EntityDataManager(
|
|
171
171
|
databaseAdapter,
|
|
172
172
|
entityCache,
|
|
173
|
-
StubQueryContextProvider,
|
|
173
|
+
new StubQueryContextProvider(),
|
|
174
174
|
new NoOpEntityMetricsAdapter(),
|
|
175
175
|
TestEntity.name,
|
|
176
176
|
);
|
|
177
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
177
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
178
178
|
// use second data manager to ensure that cache is hit instead of data loader
|
|
179
179
|
const entityDataManager2 = new EntityDataManager(
|
|
180
180
|
databaseAdapter,
|
|
181
181
|
entityCache,
|
|
182
|
-
StubQueryContextProvider,
|
|
182
|
+
new StubQueryContextProvider(),
|
|
183
183
|
new NoOpEntityMetricsAdapter(),
|
|
184
184
|
TestEntity.name,
|
|
185
185
|
);
|
|
@@ -214,11 +214,11 @@ describe(EntityDataManager, () => {
|
|
|
214
214
|
const entityDataManager = new EntityDataManager(
|
|
215
215
|
databaseAdapter,
|
|
216
216
|
entityCache,
|
|
217
|
-
StubQueryContextProvider,
|
|
217
|
+
new StubQueryContextProvider(),
|
|
218
218
|
new NoOpEntityMetricsAdapter(),
|
|
219
219
|
TestEntity.name,
|
|
220
220
|
);
|
|
221
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
221
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
222
222
|
|
|
223
223
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
|
|
224
224
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
@@ -250,11 +250,11 @@ describe(EntityDataManager, () => {
|
|
|
250
250
|
const entityDataManager = new EntityDataManager(
|
|
251
251
|
databaseAdapter,
|
|
252
252
|
entityCache,
|
|
253
|
-
StubQueryContextProvider,
|
|
253
|
+
new StubQueryContextProvider(),
|
|
254
254
|
new NoOpEntityMetricsAdapter(),
|
|
255
255
|
TestEntity.name,
|
|
256
256
|
);
|
|
257
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
257
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
258
258
|
|
|
259
259
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
|
|
260
260
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
@@ -294,11 +294,11 @@ describe(EntityDataManager, () => {
|
|
|
294
294
|
const entityDataManager = new EntityDataManager(
|
|
295
295
|
databaseAdapter,
|
|
296
296
|
entityCache,
|
|
297
|
-
StubQueryContextProvider,
|
|
297
|
+
new StubQueryContextProvider(),
|
|
298
298
|
new NoOpEntityMetricsAdapter(),
|
|
299
299
|
TestEntity.name,
|
|
300
300
|
);
|
|
301
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
301
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
302
302
|
|
|
303
303
|
const objectInQuestion = objects.get(testEntityConfiguration.tableName)![1]!;
|
|
304
304
|
|
|
@@ -333,11 +333,11 @@ describe(EntityDataManager, () => {
|
|
|
333
333
|
const entityDataManager = new EntityDataManager(
|
|
334
334
|
databaseAdapter,
|
|
335
335
|
entityCache,
|
|
336
|
-
StubQueryContextProvider,
|
|
336
|
+
new StubQueryContextProvider(),
|
|
337
337
|
new NoOpEntityMetricsAdapter(),
|
|
338
338
|
TestEntity.name,
|
|
339
339
|
);
|
|
340
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
340
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
341
341
|
|
|
342
342
|
const objectInQuestion = objects.get(testEntityConfiguration.tableName)![1]!;
|
|
343
343
|
|
|
@@ -372,7 +372,7 @@ describe(EntityDataManager, () => {
|
|
|
372
372
|
const entityDataManager = new EntityDataManager(
|
|
373
373
|
databaseAdapter,
|
|
374
374
|
entityCache,
|
|
375
|
-
StubQueryContextProvider,
|
|
375
|
+
new StubQueryContextProvider(),
|
|
376
376
|
new NoOpEntityMetricsAdapter(),
|
|
377
377
|
TestEntity.name,
|
|
378
378
|
);
|
|
@@ -380,7 +380,7 @@ describe(EntityDataManager, () => {
|
|
|
380
380
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
|
|
381
381
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
382
382
|
|
|
383
|
-
const entityDatas = await StubQueryContextProvider.runInTransactionAsync(
|
|
383
|
+
const entityDatas = await new StubQueryContextProvider().runInTransactionAsync(
|
|
384
384
|
async (queryContext) => {
|
|
385
385
|
return await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', [
|
|
386
386
|
'1',
|
|
@@ -411,11 +411,11 @@ describe(EntityDataManager, () => {
|
|
|
411
411
|
const entityDataManager = new EntityDataManager(
|
|
412
412
|
databaseAdapter,
|
|
413
413
|
entityCache,
|
|
414
|
-
StubQueryContextProvider,
|
|
414
|
+
new StubQueryContextProvider(),
|
|
415
415
|
new NoOpEntityMetricsAdapter(),
|
|
416
416
|
TestEntity.name,
|
|
417
417
|
);
|
|
418
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
418
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
419
419
|
|
|
420
420
|
const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyByFieldEqualityConjunctionAsync');
|
|
421
421
|
const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
|
|
@@ -457,11 +457,11 @@ describe(EntityDataManager, () => {
|
|
|
457
457
|
const entityDataManager = new EntityDataManager(
|
|
458
458
|
databaseAdapter,
|
|
459
459
|
entityCache,
|
|
460
|
-
StubQueryContextProvider,
|
|
460
|
+
new StubQueryContextProvider(),
|
|
461
461
|
new NoOpEntityMetricsAdapter(),
|
|
462
462
|
TestEntity.name,
|
|
463
463
|
);
|
|
464
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
464
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
465
465
|
|
|
466
466
|
await expect(
|
|
467
467
|
entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['2']),
|
|
@@ -484,11 +484,11 @@ describe(EntityDataManager, () => {
|
|
|
484
484
|
const entityDataManager = new EntityDataManager(
|
|
485
485
|
databaseAdapter,
|
|
486
486
|
entityCache,
|
|
487
|
-
StubQueryContextProvider,
|
|
487
|
+
new StubQueryContextProvider(),
|
|
488
488
|
metricsAdapter,
|
|
489
489
|
TestEntity.name,
|
|
490
490
|
);
|
|
491
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
491
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
492
492
|
|
|
493
493
|
await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['1']);
|
|
494
494
|
verify(
|
|
@@ -587,11 +587,11 @@ describe(EntityDataManager, () => {
|
|
|
587
587
|
const entityDataManager = new EntityDataManager(
|
|
588
588
|
databaseAdapter,
|
|
589
589
|
entityCache,
|
|
590
|
-
StubQueryContextProvider,
|
|
590
|
+
new StubQueryContextProvider(),
|
|
591
591
|
new NoOpEntityMetricsAdapter(),
|
|
592
592
|
TestEntity.name,
|
|
593
593
|
);
|
|
594
|
-
const queryContext = StubQueryContextProvider.getQueryContext();
|
|
594
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
595
595
|
|
|
596
596
|
await expect(
|
|
597
597
|
entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'nullableField', [null as any]),
|
|
@@ -330,9 +330,8 @@ async function canViewerDeleteInternalAsync<
|
|
|
330
330
|
edgeDeletionPermissionInferenceBehavior ===
|
|
331
331
|
EntityEdgeDeletionAuthorizationInferenceBehavior.ONE_IMPLIES_ALL
|
|
332
332
|
) {
|
|
333
|
-
const
|
|
334
|
-
.
|
|
335
|
-
.loadFirstByFieldEqualityConjunctionAsync(
|
|
333
|
+
const singleEntityResultToTestForInboundEdge =
|
|
334
|
+
await loader.loadFirstByFieldEqualityConjunctionAsync(
|
|
336
335
|
[
|
|
337
336
|
{
|
|
338
337
|
fieldName,
|
|
@@ -343,18 +342,16 @@ async function canViewerDeleteInternalAsync<
|
|
|
343
342
|
],
|
|
344
343
|
{ orderBy: [] },
|
|
345
344
|
);
|
|
346
|
-
entityResultsToCheckForInboundEdge =
|
|
347
|
-
? [
|
|
345
|
+
entityResultsToCheckForInboundEdge = singleEntityResultToTestForInboundEdge
|
|
346
|
+
? [singleEntityResultToTestForInboundEdge]
|
|
348
347
|
: [];
|
|
349
348
|
} else {
|
|
350
|
-
const entityResultsForInboundEdge = await loader
|
|
351
|
-
|
|
352
|
-
.
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
: sourceEntity.getID(),
|
|
357
|
-
);
|
|
349
|
+
const entityResultsForInboundEdge = await loader.loadManyByFieldEqualingAsync(
|
|
350
|
+
fieldName,
|
|
351
|
+
association.associatedEntityLookupByField
|
|
352
|
+
? sourceEntity.getField(association.associatedEntityLookupByField as any)
|
|
353
|
+
: sourceEntity.getID(),
|
|
354
|
+
);
|
|
358
355
|
entityResultsToCheckForInboundEdge = entityResultsForInboundEdge;
|
|
359
356
|
}
|
|
360
357
|
|
|
@@ -50,7 +50,7 @@ describe(canViewerUpdateAsync, () => {
|
|
|
50
50
|
it('appropriately executes update privacy policy', async () => {
|
|
51
51
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
52
52
|
const viewerContext = new ViewerContext(companionProvider);
|
|
53
|
-
const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).
|
|
53
|
+
const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).createAsync();
|
|
54
54
|
const canViewerUpdate = await canViewerUpdateAsync(SimpleTestDenyDeleteEntity, testEntity);
|
|
55
55
|
expect(canViewerUpdate).toBe(true);
|
|
56
56
|
const canViewerUpdateResult = await getCanViewerUpdateResultAsync(
|
|
@@ -63,7 +63,7 @@ describe(canViewerUpdateAsync, () => {
|
|
|
63
63
|
it('denies when policy denies', async () => {
|
|
64
64
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
65
65
|
const viewerContext = new ViewerContext(companionProvider);
|
|
66
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
66
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
67
67
|
const canViewerUpdate = await canViewerUpdateAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
68
68
|
expect(canViewerUpdate).toBe(false);
|
|
69
69
|
const canViewerUpdateResult = await getCanViewerUpdateResultAsync(
|
|
@@ -79,8 +79,7 @@ describe(canViewerUpdateAsync, () => {
|
|
|
79
79
|
it('rethrows non-authorization errors', async () => {
|
|
80
80
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
81
81
|
const viewerContext = new ViewerContext(companionProvider);
|
|
82
|
-
const testEntity =
|
|
83
|
-
await SimpleTestThrowOtherErrorEntity.creator(viewerContext).enforceCreateAsync();
|
|
82
|
+
const testEntity = await SimpleTestThrowOtherErrorEntity.creator(viewerContext).createAsync();
|
|
84
83
|
await expect(canViewerUpdateAsync(SimpleTestThrowOtherErrorEntity, testEntity)).rejects.toThrow(
|
|
85
84
|
'update error',
|
|
86
85
|
);
|
|
@@ -94,7 +93,7 @@ describe(canViewerDeleteAsync, () => {
|
|
|
94
93
|
it('appropriately executes update privacy policy', async () => {
|
|
95
94
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
96
95
|
const viewerContext = new ViewerContext(companionProvider);
|
|
97
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
96
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
98
97
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
99
98
|
expect(canViewerDelete).toBe(true);
|
|
100
99
|
const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
|
|
@@ -107,7 +106,7 @@ describe(canViewerDeleteAsync, () => {
|
|
|
107
106
|
it('denies when policy denies', async () => {
|
|
108
107
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
109
108
|
const viewerContext = new ViewerContext(companionProvider);
|
|
110
|
-
const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).
|
|
109
|
+
const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).createAsync();
|
|
111
110
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyDeleteEntity, testEntity);
|
|
112
111
|
expect(canViewerDelete).toBe(false);
|
|
113
112
|
const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
|
|
@@ -123,11 +122,11 @@ describe(canViewerDeleteAsync, () => {
|
|
|
123
122
|
it('denies when recursive policy denies for CASCADE_DELETE', async () => {
|
|
124
123
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
125
124
|
const viewerContext = new ViewerContext(companionProvider);
|
|
126
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
125
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
127
126
|
// add another entity referencing testEntity that would cascade deletion to itself when testEntity is deleted
|
|
128
127
|
const leafEntity = await LeafDenyDeleteEntity.creator(viewerContext)
|
|
129
128
|
.setField('simple_test_deny_update_cascade_delete_id', testEntity.getID())
|
|
130
|
-
.
|
|
129
|
+
.createAsync();
|
|
131
130
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
132
131
|
expect(canViewerDelete).toBe(false);
|
|
133
132
|
const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
|
|
@@ -143,11 +142,11 @@ describe(canViewerDeleteAsync, () => {
|
|
|
143
142
|
it('denies when recursive policy denies for SET_NULL', async () => {
|
|
144
143
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
145
144
|
const viewerContext = new ViewerContext(companionProvider);
|
|
146
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
145
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
147
146
|
// add another entity referencing testEntity that would set null to its column when testEntity is deleted
|
|
148
147
|
const leafEntity = await LeafDenyUpdateEntity.creator(viewerContext)
|
|
149
148
|
.setField('simple_test_deny_update_set_null_id', testEntity.getID())
|
|
150
|
-
.
|
|
149
|
+
.createAsync();
|
|
151
150
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
152
151
|
expect(canViewerDelete).toBe(false);
|
|
153
152
|
const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
|
|
@@ -163,15 +162,15 @@ describe(canViewerDeleteAsync, () => {
|
|
|
163
162
|
it('allows when recursive policy allows for CASCADE_DELETE and SET_NULL', async () => {
|
|
164
163
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
165
164
|
const viewerContext = new ViewerContext(companionProvider);
|
|
166
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
165
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
167
166
|
// add another entity referencing testEntity that would cascade deletion to itself when testEntity is deleted
|
|
168
167
|
await LeafDenyUpdateEntity.creator(viewerContext)
|
|
169
168
|
.setField('simple_test_deny_update_cascade_delete_id', testEntity.getID())
|
|
170
|
-
.
|
|
169
|
+
.createAsync();
|
|
171
170
|
// add another entity referencing testEntity that would set null to its column when testEntity is deleted
|
|
172
171
|
await LeafDenyDeleteEntity.creator(viewerContext)
|
|
173
172
|
.setField('simple_test_deny_update_set_null_id', testEntity.getID())
|
|
174
|
-
.
|
|
173
|
+
.createAsync();
|
|
175
174
|
|
|
176
175
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
177
176
|
expect(canViewerDelete).toBe(true);
|
|
@@ -185,8 +184,7 @@ describe(canViewerDeleteAsync, () => {
|
|
|
185
184
|
it('rethrows non-authorization errors', async () => {
|
|
186
185
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
187
186
|
const viewerContext = new ViewerContext(companionProvider);
|
|
188
|
-
const testEntity =
|
|
189
|
-
await SimpleTestThrowOtherErrorEntity.creator(viewerContext).enforceCreateAsync();
|
|
187
|
+
const testEntity = await SimpleTestThrowOtherErrorEntity.creator(viewerContext).createAsync();
|
|
190
188
|
await expect(
|
|
191
189
|
canViewerDeleteAsync(SimpleTestThrowOtherErrorEntity, testEntity),
|
|
192
190
|
).rejects.toThrowError('delete error');
|
|
@@ -198,10 +196,10 @@ describe(canViewerDeleteAsync, () => {
|
|
|
198
196
|
it('returns false when edge cannot be read', async () => {
|
|
199
197
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
200
198
|
const viewerContext = new ViewerContext(companionProvider);
|
|
201
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
199
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
202
200
|
const leafEntity = await LeafDenyReadEntity.creator(viewerContext)
|
|
203
201
|
.setField('simple_test_id', testEntity.getID())
|
|
204
|
-
.
|
|
202
|
+
.createAsync();
|
|
205
203
|
const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
|
|
206
204
|
expect(canViewerDelete).toBe(false);
|
|
207
205
|
const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
|
|
@@ -217,10 +215,10 @@ describe(canViewerDeleteAsync, () => {
|
|
|
217
215
|
it('rethrows non-authorization edge read errors', async () => {
|
|
218
216
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
219
217
|
const viewerContext = new ViewerContext(companionProvider);
|
|
220
|
-
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).
|
|
218
|
+
const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
|
|
221
219
|
await SimpleTestThrowOtherErrorEntity.creator(viewerContext)
|
|
222
220
|
.setField('simple_test_id', testEntity.getID())
|
|
223
|
-
.
|
|
221
|
+
.createAsync();
|
|
224
222
|
await expect(canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity)).rejects.toThrowError(
|
|
225
223
|
'read in cascading delete error',
|
|
226
224
|
);
|
|
@@ -238,10 +236,10 @@ describe(canViewerDeleteAsync, () => {
|
|
|
238
236
|
const testEntity = await SimpleTestDenyUpdateEntity.creator(
|
|
239
237
|
viewerContext,
|
|
240
238
|
queryContext,
|
|
241
|
-
).
|
|
239
|
+
).createAsync();
|
|
242
240
|
await LeafDenyReadEntity.creator(viewerContext, queryContext)
|
|
243
241
|
.setField('simple_test_id', testEntity.getID())
|
|
244
|
-
.
|
|
242
|
+
.createAsync();
|
|
245
243
|
// this would fail if transactions weren't supported or correctly passed through
|
|
246
244
|
return await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity, queryContext);
|
|
247
245
|
},
|
|
@@ -254,10 +252,10 @@ describe(canViewerDeleteAsync, () => {
|
|
|
254
252
|
const testEntity = await SimpleTestDenyUpdateEntity.creator(
|
|
255
253
|
viewerContext,
|
|
256
254
|
queryContext,
|
|
257
|
-
).
|
|
255
|
+
).createAsync();
|
|
258
256
|
await LeafDenyReadEntity.creator(viewerContext, queryContext)
|
|
259
257
|
.setField('simple_test_id', testEntity.getID())
|
|
260
|
-
.
|
|
258
|
+
.createAsync();
|
|
261
259
|
// this would fail if transactions weren't supported or correctly passed through
|
|
262
260
|
return await getCanViewerDeleteResultAsync(
|
|
263
261
|
SimpleTestDenyUpdateEntity,
|
package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts
CHANGED
|
@@ -21,20 +21,20 @@ describe(canViewerDeleteAsync, () => {
|
|
|
21
21
|
const viewerContext = new ViewerContext(companionProvider);
|
|
22
22
|
|
|
23
23
|
// create root
|
|
24
|
-
const testEntity = await TestEntity.creator(viewerContext).
|
|
24
|
+
const testEntity = await TestEntity.creator(viewerContext).createAsync();
|
|
25
25
|
|
|
26
26
|
// create a bunch of leaves referencing root with
|
|
27
27
|
// edgeDeletionPermissionInferenceBehavior = EntityEdgeDeletionPermissionInferenceBehavior.ONE_IMPLIES_ALL
|
|
28
28
|
for (let i = 0; i < 10; i++) {
|
|
29
29
|
await TestLeafEntity.creator(viewerContext)
|
|
30
30
|
.setField('test_entity_id', testEntity.getID())
|
|
31
|
-
.
|
|
31
|
+
.createAsync();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
for (let i = 0; i < 10; i++) {
|
|
35
35
|
await TestLeafLookupByFieldEntity.creator(viewerContext)
|
|
36
36
|
.setField('test_entity_id', testEntity.getID())
|
|
37
|
-
.
|
|
37
|
+
.createAsync();
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const testLeafEntityCompanion =
|
|
@@ -63,13 +63,13 @@ describe(canViewerDeleteAsync, () => {
|
|
|
63
63
|
const viewerContext = new ViewerContext(companionProvider);
|
|
64
64
|
|
|
65
65
|
// create root
|
|
66
|
-
const testEntity = await TestEntity.creator(viewerContext).
|
|
66
|
+
const testEntity = await TestEntity.creator(viewerContext).createAsync();
|
|
67
67
|
|
|
68
68
|
// create a bunch of leaves with no edgeDeletionPermissionInferenceBehavior
|
|
69
69
|
for (let i = 0; i < 10; i++) {
|
|
70
70
|
await TestLeafNoInferenceEntity.creator(viewerContext)
|
|
71
71
|
.setField('test_entity_id', testEntity.getID())
|
|
72
|
-
.
|
|
72
|
+
.createAsync();
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
const companion =
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TransactionConfig } from '../../EntityQueryContext';
|
|
2
2
|
import EntityQueryContextProvider from '../../EntityQueryContextProvider';
|
|
3
3
|
|
|
4
|
-
export class StubQueryContextProvider extends EntityQueryContextProvider {
|
|
4
|
+
export default class StubQueryContextProvider extends EntityQueryContextProvider {
|
|
5
5
|
protected getQueryInterface(): any {
|
|
6
6
|
return {};
|
|
7
7
|
}
|
|
@@ -18,5 +18,3 @@ export class StubQueryContextProvider extends EntityQueryContextProvider {
|
|
|
18
18
|
return (transactionScope) => Promise.resolve(transactionScope({}));
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
export default new StubQueryContextProvider();
|
|
@@ -5,6 +5,8 @@ import EntityCompanionProvider from '../../EntityCompanionProvider';
|
|
|
5
5
|
import IEntityMetricsAdapter from '../../metrics/IEntityMetricsAdapter';
|
|
6
6
|
import NoOpEntityMetricsAdapter from '../../metrics/NoOpEntityMetricsAdapter';
|
|
7
7
|
|
|
8
|
+
const queryContextProvider = new StubQueryContextProvider();
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Entity companion provider for use in unit tests. All database and cache implementations
|
|
10
12
|
* are replaced with in-memory simulations.
|
|
@@ -19,7 +21,7 @@ export const createUnitTestEntityCompanionProvider = (
|
|
|
19
21
|
'postgres',
|
|
20
22
|
{
|
|
21
23
|
adapterProvider: new StubDatabaseAdapterProvider(),
|
|
22
|
-
queryContextProvider
|
|
24
|
+
queryContextProvider,
|
|
23
25
|
},
|
|
24
26
|
],
|
|
25
27
|
]),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityLoader-constructor-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-constructor-test.ts"],"names":[],"mappings":"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"}
|