@expo/entity 0.46.0 → 0.47.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/src/AuthorizationResultBasedEntityMutator.d.ts +5 -3
- package/build/src/AuthorizationResultBasedEntityMutator.js +75 -37
- package/build/src/AuthorizationResultBasedEntityMutator.js.map +1 -1
- package/build/src/EntityDeleter.js +1 -1
- package/build/src/EntityDeleter.js.map +1 -1
- package/build/src/EntityFields.d.ts +7 -0
- package/build/src/EntityFields.js +11 -1
- package/build/src/EntityFields.js.map +1 -1
- package/build/src/EntityMutatorFactory.d.ts +3 -2
- package/build/src/EntityMutatorFactory.js +4 -4
- package/build/src/EntityMutatorFactory.js.map +1 -1
- package/build/src/EntityUpdater.js +1 -1
- package/build/src/EntityUpdater.js.map +1 -1
- package/build/src/ViewerScopedEntityMutatorFactory.d.ts +3 -2
- package/build/src/ViewerScopedEntityMutatorFactory.js +4 -4
- package/build/src/ViewerScopedEntityMutatorFactory.js.map +1 -1
- package/package.json +5 -3
- package/src/AuthorizationResultBasedEntityMutator.ts +63 -49
- package/src/EntityDeleter.ts +1 -1
- package/src/EntityFields.ts +13 -0
- package/src/EntityMutatorFactory.ts +5 -0
- package/src/EntityUpdater.ts +1 -1
- package/src/ViewerScopedEntityMutatorFactory.ts +5 -2
- package/src/__tests__/EntityFields-test.ts +7 -0
- package/src/__tests__/EntityMutator-test.ts +217 -16
- package/LICENSE +0 -21
- package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
- package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -240
- package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -109
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -590
- package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
- package/build/src/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
- package/build/src/__tests__/ComposedCacheAdapter-test.js +0 -259
- package/build/src/__tests__/ComposedCacheAdapter-test.js.map +0 -1
- package/build/src/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
- package/build/src/__tests__/ComposedSecondaryEntityCache-test.js +0 -67
- package/build/src/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
- package/build/src/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
- package/build/src/__tests__/EnforcingEntityAssociationLoader-test.js +0 -113
- package/build/src/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
- package/build/src/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
- package/build/src/__tests__/EnforcingEntityLoader-test.js +0 -316
- package/build/src/__tests__/EnforcingEntityLoader-test.js.map +0 -1
- package/build/src/__tests__/Entity-test.d.ts +0 -1
- package/build/src/__tests__/Entity-test.js +0 -92
- package/build/src/__tests__/Entity-test.js.map +0 -1
- package/build/src/__tests__/EntityAssociationLoader-test.d.ts +0 -1
- package/build/src/__tests__/EntityAssociationLoader-test.js +0 -28
- package/build/src/__tests__/EntityAssociationLoader-test.js.map +0 -1
- package/build/src/__tests__/EntityCommonUseCases-test.d.ts +0 -1
- package/build/src/__tests__/EntityCommonUseCases-test.js +0 -111
- package/build/src/__tests__/EntityCommonUseCases-test.js.map +0 -1
- package/build/src/__tests__/EntityCompanion-test.d.ts +0 -1
- package/build/src/__tests__/EntityCompanion-test.js +0 -42
- package/build/src/__tests__/EntityCompanion-test.js.map +0 -1
- package/build/src/__tests__/EntityCompanionProvider-test.d.ts +0 -1
- package/build/src/__tests__/EntityCompanionProvider-test.js +0 -53
- package/build/src/__tests__/EntityCompanionProvider-test.js.map +0 -1
- package/build/src/__tests__/EntityConfiguration-test.d.ts +0 -1
- package/build/src/__tests__/EntityConfiguration-test.js +0 -164
- package/build/src/__tests__/EntityConfiguration-test.js.map +0 -1
- package/build/src/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
- package/build/src/__tests__/EntityDatabaseAdapter-test.js +0 -189
- package/build/src/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
- package/build/src/__tests__/EntityEdges-test.d.ts +0 -1
- package/build/src/__tests__/EntityEdges-test.js +0 -680
- package/build/src/__tests__/EntityEdges-test.js.map +0 -1
- package/build/src/__tests__/EntityFields-test.d.ts +0 -1
- package/build/src/__tests__/EntityFields-test.js +0 -61
- package/build/src/__tests__/EntityFields-test.js.map +0 -1
- package/build/src/__tests__/EntityLoader-test.d.ts +0 -1
- package/build/src/__tests__/EntityLoader-test.js +0 -34
- package/build/src/__tests__/EntityLoader-test.js.map +0 -1
- package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
- package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -71
- package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
- package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.d.ts +0 -1
- package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.js +0 -54
- package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.js.map +0 -1
- package/build/src/__tests__/EntityMutator-test.d.ts +0 -1
- package/build/src/__tests__/EntityMutator-test.js +0 -721
- package/build/src/__tests__/EntityMutator-test.js.map +0 -1
- package/build/src/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
- package/build/src/__tests__/EntityPrivacyPolicy-test.js +0 -429
- package/build/src/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
- package/build/src/__tests__/EntityQueryContext-test.d.ts +0 -1
- package/build/src/__tests__/EntityQueryContext-test.js +0 -181
- package/build/src/__tests__/EntityQueryContext-test.js.map +0 -1
- package/build/src/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
- package/build/src/__tests__/EntitySecondaryCacheLoader-test.js +0 -58
- package/build/src/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
- package/build/src/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
- package/build/src/__tests__/EntitySelfReferentialEdges-test.js +0 -196
- package/build/src/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
- package/build/src/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
- package/build/src/__tests__/GenericEntityCacheAdapter-test.js +0 -95
- package/build/src/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
- package/build/src/__tests__/ReadonlyEntity-test.d.ts +0 -1
- package/build/src/__tests__/ReadonlyEntity-test.js +0 -209
- package/build/src/__tests__/ReadonlyEntity-test.js.map +0 -1
- package/build/src/__tests__/ViewerContext-test.d.ts +0 -1
- package/build/src/__tests__/ViewerContext-test.js +0 -28
- package/build/src/__tests__/ViewerContext-test.js.map +0 -1
- package/build/src/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
- package/build/src/__tests__/ViewerScopedEntityCompanion-test.js +0 -18
- package/build/src/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
- package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
- package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -18
- package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
- package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
- package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -21
- package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
- package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
- package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -20
- package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
- package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
- package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -121
- package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
- package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
- package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -119
- package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
- package/build/src/__tests__/entityUtils-test.d.ts +0 -1
- package/build/src/__tests__/entityUtils-test.js +0 -88
- package/build/src/__tests__/entityUtils-test.js.map +0 -1
- package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.d.ts +0 -1
- package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.js +0 -21
- package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.js.map +0 -1
- package/build/src/internal/__tests__/CompositeFieldHolder-test.d.ts +0 -1
- package/build/src/internal/__tests__/CompositeFieldHolder-test.js +0 -25
- package/build/src/internal/__tests__/CompositeFieldHolder-test.js.map +0 -1
- package/build/src/internal/__tests__/CompositeFieldValueMap-test.d.ts +0 -1
- package/build/src/internal/__tests__/CompositeFieldValueMap-test.js +0 -40
- package/build/src/internal/__tests__/CompositeFieldValueMap-test.js.map +0 -1
- package/build/src/internal/__tests__/EntityDataManager-test.d.ts +0 -1
- package/build/src/internal/__tests__/EntityDataManager-test.js +0 -666
- package/build/src/internal/__tests__/EntityDataManager-test.js.map +0 -1
- package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
- package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -135
- package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
- package/build/src/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
- package/build/src/internal/__tests__/ReadThroughEntityCache-test.js +0 -217
- package/build/src/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
- package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
- package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -18
- package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
- package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
- package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -18
- package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
- package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
- package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -18
- package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
- package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.d.ts +0 -28
- package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.js +0 -53
- package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.js.map +0 -1
- package/build/src/utils/__testfixtures__/SimpleTestEntity.d.ts +0 -20
- package/build/src/utils/__testfixtures__/SimpleTestEntity.js +0 -46
- package/build/src/utils/__testfixtures__/SimpleTestEntity.js.map +0 -1
- package/build/src/utils/__testfixtures__/StubCacheAdapter.d.ts +0 -29
- package/build/src/utils/__testfixtures__/StubCacheAdapter.js +0 -103
- package/build/src/utils/__testfixtures__/StubCacheAdapter.js.map +0 -1
- package/build/src/utils/__testfixtures__/StubDatabaseAdapter.d.ts +0 -26
- package/build/src/utils/__testfixtures__/StubDatabaseAdapter.js +0 -173
- package/build/src/utils/__testfixtures__/StubDatabaseAdapter.js.map +0 -1
- package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.d.ts +0 -7
- package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.js +0 -12
- package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.js.map +0 -1
- package/build/src/utils/__testfixtures__/StubQueryContextProvider.d.ts +0 -7
- package/build/src/utils/__testfixtures__/StubQueryContextProvider.js +0 -17
- package/build/src/utils/__testfixtures__/StubQueryContextProvider.js.map +0 -1
- package/build/src/utils/__testfixtures__/TSMockitoExtensions.d.ts +0 -9
- package/build/src/utils/__testfixtures__/TSMockitoExtensions.js +0 -65
- package/build/src/utils/__testfixtures__/TSMockitoExtensions.js.map +0 -1
- package/build/src/utils/__testfixtures__/TestEntity.d.ts +0 -30
- package/build/src/utils/__testfixtures__/TestEntity.js +0 -96
- package/build/src/utils/__testfixtures__/TestEntity.js.map +0 -1
- package/build/src/utils/__testfixtures__/TestEntity2.d.ts +0 -20
- package/build/src/utils/__testfixtures__/TestEntity2.js +0 -49
- package/build/src/utils/__testfixtures__/TestEntity2.js.map +0 -1
- package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.d.ts +0 -36
- package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.js +0 -80
- package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.js.map +0 -1
- package/build/src/utils/__testfixtures__/TestViewerContext.d.ts +0 -3
- package/build/src/utils/__testfixtures__/TestViewerContext.js +0 -8
- package/build/src/utils/__testfixtures__/TestViewerContext.js.map +0 -1
- package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.d.ts +0 -7
- package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.js +0 -33
- package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.js.map +0 -1
- package/build/src/utils/__testfixtures__/describeFieldTestCase.d.ts +0 -2
- package/build/src/utils/__testfixtures__/describeFieldTestCase.js +0 -19
- package/build/src/utils/__testfixtures__/describeFieldTestCase.js.map +0 -1
- package/build/src/utils/__tests__/EntityCreationUtils-test.d.ts +0 -1
- package/build/src/utils/__tests__/EntityCreationUtils-test.js +0 -144
- package/build/src/utils/__tests__/EntityCreationUtils-test.js.map +0 -1
- package/build/src/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
- package/build/src/utils/__tests__/EntityPrivacyUtils-test.js +0 -460
- package/build/src/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
- package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
- package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -180
- package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
- package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
- package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -27
- package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
- package/build/src/utils/collections/__tests__/SerializableKeyMap-test.d.ts +0 -5
- package/build/src/utils/collections/__tests__/SerializableKeyMap-test.js +0 -99
- package/build/src/utils/collections/__tests__/SerializableKeyMap-test.js.map +0 -1
- package/build/src/utils/collections/__tests__/maps-test.d.ts +0 -1
- package/build/src/utils/collections/__tests__/maps-test.js +0 -121
- package/build/src/utils/collections/__tests__/maps-test.js.map +0 -1
- package/build/src/utils/collections/__tests__/sets-test.d.ts +0 -1
- package/build/src/utils/collections/__tests__/sets-test.js +0 -19
- package/build/src/utils/collections/__tests__/sets-test.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
|
@@ -20,6 +20,7 @@ import { EntityDatabaseAdapter } from '../EntityDatabaseAdapter';
|
|
|
20
20
|
import { EntityLoaderFactory } from '../EntityLoaderFactory';
|
|
21
21
|
import { EntityLoaderUtils } from '../EntityLoaderUtils';
|
|
22
22
|
import {
|
|
23
|
+
EntityCascadingDeletionInfo,
|
|
23
24
|
EntityMutationType,
|
|
24
25
|
EntityTriggerMutationInfo,
|
|
25
26
|
EntityValidatorMutationInfo,
|
|
@@ -596,7 +597,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
596
597
|
|
|
597
598
|
const updatedEntity = await enforceAsyncResult(
|
|
598
599
|
entityMutatorFactory
|
|
599
|
-
.forUpdate(existingEntity, queryContext)
|
|
600
|
+
.forUpdate(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
600
601
|
.setField('stringField', 'huh2')
|
|
601
602
|
.updateAsync(),
|
|
602
603
|
);
|
|
@@ -649,7 +650,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
649
650
|
|
|
650
651
|
await enforceAsyncResult(
|
|
651
652
|
entityMutatorFactory
|
|
652
|
-
.forUpdate(existingEntity, queryContext)
|
|
653
|
+
.forUpdate(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
653
654
|
.setField('stringField', 'huh2')
|
|
654
655
|
.updateAsync(),
|
|
655
656
|
);
|
|
@@ -723,7 +724,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
723
724
|
|
|
724
725
|
await enforceAsyncResult(
|
|
725
726
|
entityMutatorFactory
|
|
726
|
-
.forUpdate(existingEntity, queryContext)
|
|
727
|
+
.forUpdate(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
727
728
|
.setField('stringField', 'huh2')
|
|
728
729
|
.updateAsync(),
|
|
729
730
|
);
|
|
@@ -795,7 +796,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
795
796
|
|
|
796
797
|
await enforceAsyncResult(
|
|
797
798
|
entityMutatorFactory
|
|
798
|
-
.forUpdate(existingEntity, queryContext)
|
|
799
|
+
.forUpdate(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
799
800
|
.setField('stringField', 'huh2')
|
|
800
801
|
.updateAsync(),
|
|
801
802
|
);
|
|
@@ -807,6 +808,116 @@ describe(EntityMutatorFactory, () => {
|
|
|
807
808
|
});
|
|
808
809
|
});
|
|
809
810
|
|
|
811
|
+
it('passes manaully-specified cascading delete cause to privacy policy and validators and triggers', async () => {
|
|
812
|
+
const viewerContext = mock<ViewerContext>();
|
|
813
|
+
const privacyPolicyEvaluationContext =
|
|
814
|
+
instance(
|
|
815
|
+
mock<
|
|
816
|
+
EntityPrivacyPolicyEvaluationContext<
|
|
817
|
+
TestFields,
|
|
818
|
+
'customIdField',
|
|
819
|
+
ViewerContext,
|
|
820
|
+
TestEntity,
|
|
821
|
+
keyof TestFields
|
|
822
|
+
>
|
|
823
|
+
>(),
|
|
824
|
+
);
|
|
825
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
826
|
+
|
|
827
|
+
const id1 = uuidv4();
|
|
828
|
+
const id2 = uuidv4();
|
|
829
|
+
const {
|
|
830
|
+
privacyPolicy,
|
|
831
|
+
mutationTriggers,
|
|
832
|
+
mutationValidators,
|
|
833
|
+
entityMutatorFactory,
|
|
834
|
+
entityLoaderFactory,
|
|
835
|
+
} = createEntityMutatorFactory([
|
|
836
|
+
{
|
|
837
|
+
customIdField: id1,
|
|
838
|
+
stringField: 'huh',
|
|
839
|
+
testIndexedField: '3',
|
|
840
|
+
intField: 3,
|
|
841
|
+
dateField: new Date(),
|
|
842
|
+
nullableField: null,
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
customIdField: id2,
|
|
846
|
+
stringField: 'huh',
|
|
847
|
+
testIndexedField: '4',
|
|
848
|
+
intField: 3,
|
|
849
|
+
dateField: new Date(),
|
|
850
|
+
nullableField: null,
|
|
851
|
+
},
|
|
852
|
+
]);
|
|
853
|
+
|
|
854
|
+
const spiedPrivacyPolicy = spy(privacyPolicy);
|
|
855
|
+
const triggerSpies = setUpMutationTriggerSpies(mutationTriggers);
|
|
856
|
+
const validatorSpies = setUpMutationValidatorSpies(mutationValidators);
|
|
857
|
+
|
|
858
|
+
const existingEntity = await enforceAsyncResult(
|
|
859
|
+
entityLoaderFactory
|
|
860
|
+
.forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
|
|
861
|
+
.loadByIDAsync(id2),
|
|
862
|
+
);
|
|
863
|
+
|
|
864
|
+
const cascadingDeleteCause: EntityCascadingDeletionInfo = {
|
|
865
|
+
entity: 'blah' as any,
|
|
866
|
+
cascadingDeleteCause: null,
|
|
867
|
+
};
|
|
868
|
+
|
|
869
|
+
await enforceAsyncResult(
|
|
870
|
+
entityMutatorFactory
|
|
871
|
+
.forUpdate(existingEntity, queryContext, cascadingDeleteCause)
|
|
872
|
+
.setField('stringField', 'huh2')
|
|
873
|
+
.updateAsync(),
|
|
874
|
+
);
|
|
875
|
+
|
|
876
|
+
verify(
|
|
877
|
+
spiedPrivacyPolicy.authorizeUpdateAsync(
|
|
878
|
+
viewerContext,
|
|
879
|
+
anyOfClass(EntityTransactionalQueryContext),
|
|
880
|
+
deepEqual({ previousValue: existingEntity, cascadingDeleteCause }),
|
|
881
|
+
anyOfClass(TestEntity),
|
|
882
|
+
anything(),
|
|
883
|
+
),
|
|
884
|
+
).once();
|
|
885
|
+
|
|
886
|
+
verify(
|
|
887
|
+
spiedPrivacyPolicy.authorizeReadAsync(
|
|
888
|
+
viewerContext,
|
|
889
|
+
anyOfClass(EntityTransactionalQueryContext),
|
|
890
|
+
deepEqual({ previousValue: existingEntity, cascadingDeleteCause }),
|
|
891
|
+
anyOfClass(TestEntity),
|
|
892
|
+
anything(),
|
|
893
|
+
),
|
|
894
|
+
).once();
|
|
895
|
+
|
|
896
|
+
verifyValidatorCounts(viewerContext, validatorSpies, 1, {
|
|
897
|
+
type: EntityMutationType.UPDATE,
|
|
898
|
+
previousValue: existingEntity,
|
|
899
|
+
cascadingDeleteCause,
|
|
900
|
+
});
|
|
901
|
+
|
|
902
|
+
verifyTriggerCounts(
|
|
903
|
+
viewerContext,
|
|
904
|
+
triggerSpies,
|
|
905
|
+
{
|
|
906
|
+
beforeCreate: false,
|
|
907
|
+
afterCreate: false,
|
|
908
|
+
beforeUpdate: true,
|
|
909
|
+
afterUpdate: true,
|
|
910
|
+
beforeDelete: false,
|
|
911
|
+
afterDelete: false,
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
type: EntityMutationType.UPDATE,
|
|
915
|
+
previousValue: existingEntity,
|
|
916
|
+
cascadingDeleteCause,
|
|
917
|
+
},
|
|
918
|
+
);
|
|
919
|
+
});
|
|
920
|
+
|
|
810
921
|
it('throws when id field is updated', async () => {
|
|
811
922
|
const viewerContext = mock<ViewerContext>();
|
|
812
923
|
const privacyPolicyEvaluationContext =
|
|
@@ -844,7 +955,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
844
955
|
await expect(
|
|
845
956
|
enforceAsyncResult(
|
|
846
957
|
entityMutatorFactory
|
|
847
|
-
.forUpdate(existingEntity, queryContext)
|
|
958
|
+
.forUpdate(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
848
959
|
.setField('customIdField', uuidv4())
|
|
849
960
|
.updateAsync(),
|
|
850
961
|
),
|
|
@@ -896,7 +1007,9 @@ describe(EntityMutatorFactory, () => {
|
|
|
896
1007
|
expect(existingEntity).toBeTruthy();
|
|
897
1008
|
|
|
898
1009
|
await enforceAsyncResult(
|
|
899
|
-
entityMutatorFactory
|
|
1010
|
+
entityMutatorFactory
|
|
1011
|
+
.forDelete(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1012
|
+
.deleteAsync(),
|
|
900
1013
|
);
|
|
901
1014
|
|
|
902
1015
|
await expect(
|
|
@@ -946,7 +1059,9 @@ describe(EntityMutatorFactory, () => {
|
|
|
946
1059
|
);
|
|
947
1060
|
|
|
948
1061
|
await enforceAsyncResult(
|
|
949
|
-
entityMutatorFactory
|
|
1062
|
+
entityMutatorFactory
|
|
1063
|
+
.forDelete(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1064
|
+
.deleteAsync(),
|
|
950
1065
|
);
|
|
951
1066
|
|
|
952
1067
|
verify(
|
|
@@ -998,7 +1113,9 @@ describe(EntityMutatorFactory, () => {
|
|
|
998
1113
|
);
|
|
999
1114
|
|
|
1000
1115
|
await enforceAsyncResult(
|
|
1001
|
-
entityMutatorFactory
|
|
1116
|
+
entityMutatorFactory
|
|
1117
|
+
.forDelete(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1118
|
+
.deleteAsync(),
|
|
1002
1119
|
);
|
|
1003
1120
|
|
|
1004
1121
|
verifyTriggerCounts(
|
|
@@ -1054,13 +1171,89 @@ describe(EntityMutatorFactory, () => {
|
|
|
1054
1171
|
);
|
|
1055
1172
|
|
|
1056
1173
|
await enforceAsyncResult(
|
|
1057
|
-
entityMutatorFactory
|
|
1174
|
+
entityMutatorFactory
|
|
1175
|
+
.forDelete(existingEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1176
|
+
.deleteAsync(),
|
|
1058
1177
|
);
|
|
1059
1178
|
|
|
1060
1179
|
verifyValidatorCounts(viewerContext, validatorSpies, 0, {
|
|
1061
1180
|
type: EntityMutationType.DELETE as any,
|
|
1062
1181
|
});
|
|
1063
1182
|
});
|
|
1183
|
+
|
|
1184
|
+
it('passes manaully-specified cascading delete cause to privacy policy and triggers', async () => {
|
|
1185
|
+
const viewerContext = mock<ViewerContext>();
|
|
1186
|
+
const privacyPolicyEvaluationContext =
|
|
1187
|
+
instance(
|
|
1188
|
+
mock<
|
|
1189
|
+
EntityPrivacyPolicyEvaluationContext<
|
|
1190
|
+
TestFields,
|
|
1191
|
+
'customIdField',
|
|
1192
|
+
ViewerContext,
|
|
1193
|
+
TestEntity,
|
|
1194
|
+
keyof TestFields
|
|
1195
|
+
>
|
|
1196
|
+
>(),
|
|
1197
|
+
);
|
|
1198
|
+
const queryContext = new StubQueryContextProvider().getQueryContext();
|
|
1199
|
+
|
|
1200
|
+
const id1 = uuidv4();
|
|
1201
|
+
const { mutationTriggers, privacyPolicy, entityMutatorFactory, entityLoaderFactory } =
|
|
1202
|
+
createEntityMutatorFactory([
|
|
1203
|
+
{
|
|
1204
|
+
customIdField: id1,
|
|
1205
|
+
stringField: 'huh',
|
|
1206
|
+
testIndexedField: '3',
|
|
1207
|
+
intField: 3,
|
|
1208
|
+
dateField: new Date(),
|
|
1209
|
+
nullableField: null,
|
|
1210
|
+
},
|
|
1211
|
+
]);
|
|
1212
|
+
|
|
1213
|
+
const spiedPrivacyPolicy = spy(privacyPolicy);
|
|
1214
|
+
const triggerSpies = setUpMutationTriggerSpies(mutationTriggers);
|
|
1215
|
+
|
|
1216
|
+
const existingEntity = await enforceAsyncResult(
|
|
1217
|
+
entityLoaderFactory
|
|
1218
|
+
.forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
|
|
1219
|
+
.loadByIDAsync(id1),
|
|
1220
|
+
);
|
|
1221
|
+
|
|
1222
|
+
const cascadingDeleteCause: EntityCascadingDeletionInfo = {
|
|
1223
|
+
entity: 'blah' as any,
|
|
1224
|
+
cascadingDeleteCause: null,
|
|
1225
|
+
};
|
|
1226
|
+
|
|
1227
|
+
await enforceAsyncResult(
|
|
1228
|
+
entityMutatorFactory
|
|
1229
|
+
.forDelete(existingEntity, queryContext, cascadingDeleteCause)
|
|
1230
|
+
.deleteAsync(),
|
|
1231
|
+
);
|
|
1232
|
+
|
|
1233
|
+
verify(
|
|
1234
|
+
spiedPrivacyPolicy.authorizeDeleteAsync(
|
|
1235
|
+
viewerContext,
|
|
1236
|
+
anyOfClass(EntityTransactionalQueryContext),
|
|
1237
|
+
deepEqual({ previousValue: null, cascadingDeleteCause }),
|
|
1238
|
+
anyOfClass(TestEntity),
|
|
1239
|
+
anything(),
|
|
1240
|
+
),
|
|
1241
|
+
).once();
|
|
1242
|
+
|
|
1243
|
+
verifyTriggerCounts(
|
|
1244
|
+
viewerContext,
|
|
1245
|
+
triggerSpies,
|
|
1246
|
+
{
|
|
1247
|
+
beforeCreate: false,
|
|
1248
|
+
afterCreate: false,
|
|
1249
|
+
beforeUpdate: false,
|
|
1250
|
+
afterUpdate: false,
|
|
1251
|
+
beforeDelete: true,
|
|
1252
|
+
afterDelete: true,
|
|
1253
|
+
},
|
|
1254
|
+
{ type: EntityMutationType.DELETE, cascadingDeleteCause },
|
|
1255
|
+
);
|
|
1256
|
+
});
|
|
1064
1257
|
});
|
|
1065
1258
|
|
|
1066
1259
|
it('invalidates cache for fields upon create', async () => {
|
|
@@ -1163,7 +1356,7 @@ describe(EntityMutatorFactory, () => {
|
|
|
1163
1356
|
|
|
1164
1357
|
await expect(
|
|
1165
1358
|
entityMutatorFactory
|
|
1166
|
-
.forUpdate(createdEntity, queryContext)
|
|
1359
|
+
.forUpdate(createdEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1167
1360
|
.setField('stringField', 10 as any)
|
|
1168
1361
|
.updateAsync(),
|
|
1169
1362
|
).rejects.toThrow('Entity field not valid: TestEntity (stringField = 10)');
|
|
@@ -1284,14 +1477,14 @@ describe(EntityMutatorFactory, () => {
|
|
|
1284
1477
|
expect(entityCreateResult.value).toBe(undefined);
|
|
1285
1478
|
|
|
1286
1479
|
const entityUpdateResult = await entityMutatorFactory
|
|
1287
|
-
.forUpdate(fakeEntity, queryContext)
|
|
1480
|
+
.forUpdate(fakeEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1288
1481
|
.updateAsync();
|
|
1289
1482
|
expect(entityUpdateResult.ok).toBe(false);
|
|
1290
1483
|
expect(entityUpdateResult.reason).toEqual(rejectionError);
|
|
1291
1484
|
expect(entityUpdateResult.value).toBe(undefined);
|
|
1292
1485
|
|
|
1293
1486
|
const entityDeleteResult = await entityMutatorFactory
|
|
1294
|
-
.forDelete(fakeEntity, queryContext)
|
|
1487
|
+
.forDelete(fakeEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1295
1488
|
.deleteAsync();
|
|
1296
1489
|
expect(entityDeleteResult.ok).toBe(false);
|
|
1297
1490
|
expect(entityDeleteResult.reason).toEqual(rejectionError);
|
|
@@ -1406,10 +1599,14 @@ describe(EntityMutatorFactory, () => {
|
|
|
1406
1599
|
entityMutatorFactory.forCreate(viewerContext, queryContext).createAsync(),
|
|
1407
1600
|
).rejects.toEqual(rejectionError);
|
|
1408
1601
|
await expect(
|
|
1409
|
-
entityMutatorFactory
|
|
1602
|
+
entityMutatorFactory
|
|
1603
|
+
.forUpdate(fakeEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1604
|
+
.updateAsync(),
|
|
1410
1605
|
).rejects.toEqual(rejectionError);
|
|
1411
1606
|
await expect(
|
|
1412
|
-
entityMutatorFactory
|
|
1607
|
+
entityMutatorFactory
|
|
1608
|
+
.forDelete(fakeEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1609
|
+
.deleteAsync(),
|
|
1413
1610
|
).rejects.toEqual(rejectionError);
|
|
1414
1611
|
});
|
|
1415
1612
|
|
|
@@ -1428,12 +1625,16 @@ describe(EntityMutatorFactory, () => {
|
|
|
1428
1625
|
|
|
1429
1626
|
await enforceAsyncResult(
|
|
1430
1627
|
entityMutatorFactory
|
|
1431
|
-
.forUpdate(newEntity, queryContext)
|
|
1628
|
+
.forUpdate(newEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1432
1629
|
.setField('stringField', 'wat')
|
|
1433
1630
|
.updateAsync(),
|
|
1434
1631
|
);
|
|
1435
1632
|
|
|
1436
|
-
await enforceAsyncResult(
|
|
1633
|
+
await enforceAsyncResult(
|
|
1634
|
+
entityMutatorFactory
|
|
1635
|
+
.forDelete(newEntity, queryContext, /* cascadingDeleteCause */ null)
|
|
1636
|
+
.deleteAsync(),
|
|
1637
|
+
);
|
|
1437
1638
|
|
|
1438
1639
|
verify(
|
|
1439
1640
|
spiedMetricsAdapter.logMutatorMutationEvent(
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2020-present 650 Industries, Inc. (aka Expo)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const results_1 = require("@expo/results");
|
|
4
|
-
const globals_1 = require("@jest/globals");
|
|
5
|
-
const uuid_1 = require("uuid");
|
|
6
|
-
const AuthorizationResultBasedEntityAssociationLoader_1 = require("../AuthorizationResultBasedEntityAssociationLoader");
|
|
7
|
-
const entityUtils_1 = require("../entityUtils");
|
|
8
|
-
const TestEntity_1 = require("../utils/__testfixtures__/TestEntity");
|
|
9
|
-
const TestEntity2_1 = require("../utils/__testfixtures__/TestEntity2");
|
|
10
|
-
const TestViewerContext_1 = require("../utils/__testfixtures__/TestViewerContext");
|
|
11
|
-
const createUnitTestEntityCompanionProvider_1 = require("../utils/__testfixtures__/createUnitTestEntityCompanionProvider");
|
|
12
|
-
(0, globals_1.describe)(AuthorizationResultBasedEntityAssociationLoader_1.AuthorizationResultBasedEntityAssociationLoader, () => {
|
|
13
|
-
(0, globals_1.describe)('loadAssociatedEntityAsync', () => {
|
|
14
|
-
(0, globals_1.it)('loads associated entities by ID and correctly handles a null value', async () => {
|
|
15
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
16
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
17
|
-
const testOtherEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
18
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
19
|
-
.setField('stringField', testOtherEntity.getID())
|
|
20
|
-
.createAsync());
|
|
21
|
-
const loadedOther = await (0, results_1.enforceAsyncResult)(testEntity
|
|
22
|
-
.associationLoaderWithAuthorizationResults()
|
|
23
|
-
.loadAssociatedEntityAsync('stringField', TestEntity_1.TestEntity));
|
|
24
|
-
(0, globals_1.expect)(loadedOther.getID()).toEqual(testOtherEntity.getID());
|
|
25
|
-
const loadedOther2 = await (0, results_1.enforceAsyncResult)(testEntity
|
|
26
|
-
.associationLoaderWithAuthorizationResults()
|
|
27
|
-
.loadAssociatedEntityAsync('nullableField', TestEntity_1.TestEntity));
|
|
28
|
-
(0, globals_1.expect)(loadedOther2).toBeNull();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
(0, globals_1.describe)('loadManyAssociatedEntitiesAsync', () => {
|
|
32
|
-
(0, globals_1.it)('loads many associated entities referencing this entity', async () => {
|
|
33
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
34
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
35
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
36
|
-
const testOtherEntity1 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
37
|
-
.setField('stringField', testEntity.getID())
|
|
38
|
-
.createAsync());
|
|
39
|
-
const testOtherEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
40
|
-
.setField('stringField', testEntity.getID())
|
|
41
|
-
.createAsync());
|
|
42
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity
|
|
43
|
-
.associationLoaderWithAuthorizationResults()
|
|
44
|
-
.loadManyAssociatedEntitiesAsync(TestEntity_1.TestEntity, 'stringField'));
|
|
45
|
-
(0, globals_1.expect)(loaded).toHaveLength(2);
|
|
46
|
-
(0, globals_1.expect)(loaded.find((e) => e.getID() === testOtherEntity1.getID())).not.toBeUndefined();
|
|
47
|
-
(0, globals_1.expect)(loaded.find((e) => e.getID() === testOtherEntity2.getID())).not.toBeUndefined();
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
(0, globals_1.describe)('loadAssociatedEntityByFieldEqualingAsync', () => {
|
|
51
|
-
(0, globals_1.it)('loads associated entity by field equaling', async () => {
|
|
52
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
53
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
54
|
-
const testOtherEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
55
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
56
|
-
.setField('stringField', testOtherEntity.getID())
|
|
57
|
-
.createAsync());
|
|
58
|
-
const loadedOtherResult = await testEntity
|
|
59
|
-
.associationLoaderWithAuthorizationResults()
|
|
60
|
-
.loadAssociatedEntityByFieldEqualingAsync('stringField', TestEntity_1.TestEntity, 'customIdField');
|
|
61
|
-
(0, globals_1.expect)(loadedOtherResult?.enforceValue().getID()).toEqual(testOtherEntity.getID());
|
|
62
|
-
});
|
|
63
|
-
(0, globals_1.it)('returns null when loading associated entities by field equaling a non existent association', async () => {
|
|
64
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
65
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
66
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
67
|
-
.setField('stringField', (0, uuid_1.v4)())
|
|
68
|
-
.createAsync());
|
|
69
|
-
const loadedOtherResult = await testEntity
|
|
70
|
-
.associationLoaderWithAuthorizationResults()
|
|
71
|
-
.loadAssociatedEntityByFieldEqualingAsync('stringField', TestEntity_1.TestEntity, 'customIdField');
|
|
72
|
-
(0, globals_1.expect)(loadedOtherResult).toBeNull();
|
|
73
|
-
});
|
|
74
|
-
(0, globals_1.it)('returns null when load-by field is null', async () => {
|
|
75
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
76
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
77
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
78
|
-
.setField('stringField', 'blah')
|
|
79
|
-
.createAsync());
|
|
80
|
-
const loadedOtherResult = await testEntity
|
|
81
|
-
.associationLoaderWithAuthorizationResults()
|
|
82
|
-
.loadAssociatedEntityByFieldEqualingAsync('nullableField', TestEntity_1.TestEntity, 'customIdField');
|
|
83
|
-
(0, globals_1.expect)(loadedOtherResult).toBeNull();
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
(0, globals_1.describe)('loadManyAssociatedEntitiesByFieldEqualingAsync', () => {
|
|
87
|
-
(0, globals_1.it)('loads many associated entities by field equaling', async () => {
|
|
88
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
89
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
90
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
91
|
-
const testOtherEntity1 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
92
|
-
.setField('stringField', testEntity.getID())
|
|
93
|
-
.createAsync());
|
|
94
|
-
const testOtherEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
95
|
-
.setField('stringField', testEntity.getID())
|
|
96
|
-
.createAsync());
|
|
97
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity
|
|
98
|
-
.associationLoaderWithAuthorizationResults()
|
|
99
|
-
.loadManyAssociatedEntitiesByFieldEqualingAsync('customIdField', TestEntity_1.TestEntity, 'stringField'));
|
|
100
|
-
(0, globals_1.expect)(loaded).toHaveLength(2);
|
|
101
|
-
(0, globals_1.expect)(loaded.find((e) => e.getID() === testOtherEntity1.getID())).not.toBeUndefined();
|
|
102
|
-
(0, globals_1.expect)(loaded.find((e) => e.getID() === testOtherEntity2.getID())).not.toBeUndefined();
|
|
103
|
-
});
|
|
104
|
-
(0, globals_1.it)('returns empty results when field being queried by is null', async () => {
|
|
105
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
106
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
107
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
108
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity
|
|
109
|
-
.associationLoaderWithAuthorizationResults()
|
|
110
|
-
.loadManyAssociatedEntitiesByFieldEqualingAsync('nullableField', TestEntity_1.TestEntity, 'stringField'));
|
|
111
|
-
(0, globals_1.expect)(loaded).toHaveLength(0);
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
(0, globals_1.describe)('loadAssociatedEntityThroughAsync', () => {
|
|
115
|
-
(0, globals_1.it)('chain loads associated entities', async () => {
|
|
116
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
117
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
118
|
-
const testEntity4 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext).createAsync());
|
|
119
|
-
const testEntity3 = await (0, results_1.enforceAsyncResult)(TestEntity2_1.TestEntity2.creatorWithAuthorizationResults(viewerContext)
|
|
120
|
-
.setField('foreignKey', testEntity4.getID())
|
|
121
|
-
.createAsync());
|
|
122
|
-
const testEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
123
|
-
.setField('testIndexedField', testEntity3.getID())
|
|
124
|
-
.createAsync());
|
|
125
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.TestEntity2.creatorWithAuthorizationResults(viewerContext)
|
|
126
|
-
.setField('foreignKey', testEntity2.getID())
|
|
127
|
-
.createAsync());
|
|
128
|
-
const loaded2Result = await testEntity
|
|
129
|
-
.associationLoaderWithAuthorizationResults()
|
|
130
|
-
.loadAssociatedEntityThroughAsync([
|
|
131
|
-
{
|
|
132
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
133
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
134
|
-
},
|
|
135
|
-
]);
|
|
136
|
-
(0, globals_1.expect)(loaded2Result?.enforceValue().getID()).toEqual(testEntity2.getID());
|
|
137
|
-
const loaded3Result = await testEntity
|
|
138
|
-
.associationLoaderWithAuthorizationResults()
|
|
139
|
-
.loadAssociatedEntityThroughAsync([
|
|
140
|
-
{
|
|
141
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
142
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
associatedEntityClass: TestEntity2_1.TestEntity2,
|
|
146
|
-
fieldIdentifyingAssociatedEntity: 'testIndexedField',
|
|
147
|
-
},
|
|
148
|
-
]);
|
|
149
|
-
(0, globals_1.expect)(loaded3Result?.enforceValue().getID()).toEqual(testEntity3.getID());
|
|
150
|
-
const loaded4Result = await testEntity
|
|
151
|
-
.associationLoaderWithAuthorizationResults()
|
|
152
|
-
.loadAssociatedEntityThroughAsync([
|
|
153
|
-
{
|
|
154
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
155
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
associatedEntityClass: TestEntity2_1.TestEntity2,
|
|
159
|
-
fieldIdentifyingAssociatedEntity: 'testIndexedField',
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
163
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
164
|
-
},
|
|
165
|
-
]);
|
|
166
|
-
(0, globals_1.expect)(loaded4Result?.enforceValue().getID()).toEqual(testEntity4.getID());
|
|
167
|
-
});
|
|
168
|
-
(0, globals_1.it)('fails when chain loading associated entity fails', async () => {
|
|
169
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
170
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
171
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.TestEntity2.creatorWithAuthorizationResults(viewerContext)
|
|
172
|
-
.setField('foreignKey', (0, uuid_1.v4)())
|
|
173
|
-
.createAsync());
|
|
174
|
-
const loadResult = await testEntity
|
|
175
|
-
.associationLoaderWithAuthorizationResults()
|
|
176
|
-
.loadAssociatedEntityThroughAsync([
|
|
177
|
-
{
|
|
178
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
179
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
180
|
-
},
|
|
181
|
-
]);
|
|
182
|
-
(0, globals_1.expect)(loadResult?.ok).toBe(false);
|
|
183
|
-
});
|
|
184
|
-
(0, globals_1.it)('supports chain loading by field equality', async () => {
|
|
185
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
186
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
187
|
-
const fieldValue = (0, uuid_1.v4)();
|
|
188
|
-
const testEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
189
|
-
.setField('stringField', fieldValue)
|
|
190
|
-
.createAsync());
|
|
191
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.TestEntity2.creatorWithAuthorizationResults(viewerContext)
|
|
192
|
-
.setField('foreignKey', fieldValue)
|
|
193
|
-
.createAsync());
|
|
194
|
-
const loaded2Result = await testEntity
|
|
195
|
-
.associationLoaderWithAuthorizationResults()
|
|
196
|
-
.loadAssociatedEntityThroughAsync([
|
|
197
|
-
{
|
|
198
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
199
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
200
|
-
associatedEntityLookupByField: 'stringField',
|
|
201
|
-
},
|
|
202
|
-
]);
|
|
203
|
-
(0, globals_1.expect)(loaded2Result?.enforceValue().getID()).toEqual(testEntity2.getID());
|
|
204
|
-
});
|
|
205
|
-
(0, globals_1.it)('returns null when chain loading by field equality returns null', async () => {
|
|
206
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
207
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
208
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.TestEntity2.creatorWithAuthorizationResults(viewerContext)
|
|
209
|
-
.setField('foreignKey', (0, uuid_1.v4)())
|
|
210
|
-
.createAsync());
|
|
211
|
-
const loaded2Result = await testEntity
|
|
212
|
-
.associationLoaderWithAuthorizationResults()
|
|
213
|
-
.loadAssociatedEntityThroughAsync([
|
|
214
|
-
{
|
|
215
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
216
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
217
|
-
associatedEntityLookupByField: 'stringField',
|
|
218
|
-
},
|
|
219
|
-
]);
|
|
220
|
-
(0, globals_1.expect)(loaded2Result).toBeNull();
|
|
221
|
-
});
|
|
222
|
-
(0, globals_1.it)('returns null when chain loading by field is null', async () => {
|
|
223
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
224
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
225
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.TestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
226
|
-
.setField('nullableField', null)
|
|
227
|
-
.createAsync());
|
|
228
|
-
const loadedResult = await testEntity
|
|
229
|
-
.associationLoaderWithAuthorizationResults()
|
|
230
|
-
.loadAssociatedEntityThroughAsync([
|
|
231
|
-
{
|
|
232
|
-
associatedEntityClass: TestEntity_1.TestEntity,
|
|
233
|
-
fieldIdentifyingAssociatedEntity: 'nullableField',
|
|
234
|
-
},
|
|
235
|
-
]);
|
|
236
|
-
(0, globals_1.expect)(loadedResult).toBeNull();
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
//# sourceMappingURL=AuthorizationResultBasedEntityAssociationLoader-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationResultBasedEntityAssociationLoader-test.js","sourceRoot":"","sources":["../../../src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Entity } from '../Entity';
|
|
2
|
-
import { EntityCompanionDefinition } from '../EntityCompanionProvider';
|
|
3
|
-
import { EntityConfiguration } from '../EntityConfiguration';
|
|
4
|
-
import { EntityPrivacyPolicy } from '../EntityPrivacyPolicy';
|
|
5
|
-
import { ViewerContext } from '../ViewerContext';
|
|
6
|
-
import { AlwaysAllowPrivacyPolicyRule } from '../rules/AlwaysAllowPrivacyPolicyRule';
|
|
7
|
-
export type TestFields = {
|
|
8
|
-
id: string;
|
|
9
|
-
};
|
|
10
|
-
export type TestFieldSelection = keyof TestFields;
|
|
11
|
-
export declare const testEntityConfiguration: EntityConfiguration<TestFields, "id">;
|
|
12
|
-
export declare class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<TestFields, 'id', ViewerContext, TestEntity, TestFieldSelection> {
|
|
13
|
-
protected readonly readRules: AlwaysAllowPrivacyPolicyRule<TestFields, "id", ViewerContext, TestEntity, "id">[];
|
|
14
|
-
protected readonly createRules: AlwaysAllowPrivacyPolicyRule<TestFields, "id", ViewerContext, TestEntity, "id">[];
|
|
15
|
-
protected readonly updateRules: AlwaysAllowPrivacyPolicyRule<TestFields, "id", ViewerContext, TestEntity, "id">[];
|
|
16
|
-
protected readonly deleteRules: AlwaysAllowPrivacyPolicyRule<TestFields, "id", ViewerContext, TestEntity, "id">[];
|
|
17
|
-
}
|
|
18
|
-
export declare class TestEntity extends Entity<TestFields, 'id', ViewerContext, TestFieldSelection> {
|
|
19
|
-
constructor(constructorParams: {
|
|
20
|
-
viewerContext: ViewerContext;
|
|
21
|
-
id: string;
|
|
22
|
-
databaseFields: Readonly<TestFields>;
|
|
23
|
-
selectedFields: Readonly<TestFields>;
|
|
24
|
-
});
|
|
25
|
-
static defineCompanionDefinition(): EntityCompanionDefinition<TestFields, 'id', ViewerContext, TestEntity, TestEntityPrivacyPolicy, TestFieldSelection>;
|
|
26
|
-
}
|