@expo/entity 0.40.0 → 0.42.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 +16 -16
- package/build/AuthorizationResultBasedEntityAssociationLoader.js +2 -4
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -1
- package/build/AuthorizationResultBasedEntityLoader.d.ts +39 -67
- package/build/AuthorizationResultBasedEntityLoader.js +85 -62
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/AuthorizationResultBasedEntityMutator.d.ts +16 -16
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
- package/build/ComposedEntityCacheAdapter.d.ts +7 -6
- package/build/ComposedEntityCacheAdapter.js +28 -28
- package/build/ComposedEntityCacheAdapter.js.map +1 -1
- package/build/ComposedSecondaryEntityCache.d.ts +1 -1
- package/build/ComposedSecondaryEntityCache.js.map +1 -1
- package/build/EnforcingEntityAssociationLoader.d.ts +15 -15
- package/build/EnforcingEntityAssociationLoader.js.map +1 -1
- package/build/EnforcingEntityCreator.d.ts +2 -2
- package/build/EnforcingEntityDeleter.d.ts +2 -2
- package/build/EnforcingEntityLoader.d.ts +104 -18
- package/build/EnforcingEntityLoader.js +113 -12
- package/build/EnforcingEntityLoader.js.map +1 -1
- package/build/EnforcingEntityUpdater.d.ts +2 -2
- package/build/Entity.d.ts +32 -10
- package/build/Entity.js +41 -3
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.d.ts +3 -3
- package/build/EntityCompanion.d.ts +5 -5
- package/build/EntityCompanion.js.map +1 -1
- package/build/EntityCompanionProvider.d.ts +6 -6
- package/build/EntityCompanionProvider.js.map +1 -1
- package/build/EntityConfiguration.d.ts +46 -5
- package/build/EntityConfiguration.js +39 -1
- package/build/EntityConfiguration.js.map +1 -1
- package/build/EntityCreator.d.ts +4 -4
- package/build/EntityDatabaseAdapter.d.ts +15 -14
- package/build/EntityDatabaseAdapter.js +20 -12
- package/build/EntityDatabaseAdapter.js.map +1 -1
- package/build/EntityDeleter.d.ts +4 -4
- package/build/EntityFieldDefinition.d.ts +20 -10
- package/build/EntityFieldDefinition.js +3 -1
- package/build/EntityFieldDefinition.js.map +1 -1
- package/build/EntityFields.d.ts +14 -12
- package/build/EntityFields.js.map +1 -1
- package/build/EntityLoader.d.ts +5 -5
- package/build/EntityLoaderFactory.d.ts +3 -3
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityLoaderUtils.d.ts +2 -2
- package/build/EntityLoaderUtils.js +27 -1
- package/build/EntityLoaderUtils.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +2 -2
- package/build/EntityMutationTriggerConfiguration.d.ts +14 -14
- package/build/EntityMutationTriggerConfiguration.js.map +1 -1
- package/build/EntityMutationValidator.d.ts +2 -2
- package/build/EntityMutatorFactory.d.ts +5 -5
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntityPrivacyPolicy.d.ts +14 -14
- package/build/EntityPrivacyPolicy.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.d.ts +4 -4
- package/build/EntityUpdater.d.ts +4 -4
- package/build/GenericEntityCacheAdapter.d.ts +7 -6
- package/build/GenericEntityCacheAdapter.js +13 -14
- package/build/GenericEntityCacheAdapter.js.map +1 -1
- package/build/GenericSecondaryEntityCache.d.ts +3 -3
- package/build/GenericSecondaryEntityCache.js.map +1 -1
- package/build/IEntityCacheAdapter.d.ts +17 -16
- package/build/IEntityCacheAdapterProvider.d.ts +1 -1
- package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
- package/build/IEntityGenericCacher.d.ts +15 -5
- package/build/ReadonlyEntity.d.ts +27 -8
- package/build/ReadonlyEntity.js +31 -3
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerContext.d.ts +1 -1
- package/build/ViewerScopedEntityCompanion.d.ts +5 -5
- package/build/ViewerScopedEntityCompanionProvider.d.ts +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +3 -3
- package/build/ViewerScopedEntityMutatorFactory.d.ts +5 -5
- package/build/entityUtils.d.ts +1 -1
- package/build/entityUtils.js.map +1 -1
- package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
- package/build/errors/EntityNotAuthorizedError.d.ts +1 -1
- package/build/errors/EntityNotFoundError.d.ts +2 -2
- package/build/index.d.ts +7 -7
- package/build/index.js +8 -13
- package/build/index.js.map +1 -1
- package/build/internal/CompositeFieldHolder.d.ts +48 -0
- package/build/internal/CompositeFieldHolder.js +116 -0
- package/build/internal/CompositeFieldHolder.js.map +1 -0
- package/build/internal/CompositeFieldValueMap.d.ts +15 -0
- package/build/internal/CompositeFieldValueMap.js +51 -0
- package/build/internal/CompositeFieldValueMap.js.map +1 -0
- package/build/internal/EntityDataManager.d.ts +16 -16
- package/build/internal/EntityDataManager.js +42 -45
- package/build/internal/EntityDataManager.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/EntityLoadInterfaces.d.ts +104 -0
- package/build/internal/EntityLoadInterfaces.js +25 -0
- package/build/internal/EntityLoadInterfaces.js.map +1 -0
- package/build/internal/EntityTableDataCoordinator.d.ts +6 -6
- package/build/internal/EntityTableDataCoordinator.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.d.ts +17 -16
- package/build/internal/ReadThroughEntityCache.js +36 -36
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/SingleFieldHolder.d.ts +34 -0
- package/build/internal/SingleFieldHolder.js +90 -0
- package/build/internal/SingleFieldHolder.js.map +1 -0
- package/build/metrics/EntityMetricsUtils.d.ts +2 -1
- package/build/metrics/EntityMetricsUtils.js.map +1 -1
- package/build/metrics/IEntityMetricsAdapter.d.ts +5 -0
- package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/rules/PrivacyPolicyRule.d.ts +2 -2
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/build/utils/EntityPrivacyUtils.d.ts +4 -4
- package/build/utils/EntityPrivacyUtils.js.map +1 -1
- package/build/utils/collections/SerializableKeyMap.d.ts +27 -0
- package/build/utils/collections/SerializableKeyMap.js +60 -0
- package/build/utils/collections/SerializableKeyMap.js.map +1 -0
- package/build/utils/collections/maps.js +1 -2
- package/build/utils/collections/maps.js.map +1 -1
- package/build/utils/collections/sets.d.ts +1 -0
- package/build/utils/collections/sets.js +7 -0
- package/build/utils/collections/sets.js.map +1 -0
- package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +1 -1
- package/package.json +8 -5
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +58 -53
- package/src/AuthorizationResultBasedEntityLoader.ts +194 -81
- package/src/AuthorizationResultBasedEntityMutator.ts +71 -45
- package/src/ComposedEntityCacheAdapter.ts +55 -46
- package/src/ComposedSecondaryEntityCache.ts +5 -2
- package/src/EnforcingEntityAssociationLoader.ts +52 -44
- package/src/EnforcingEntityCreator.ts +5 -5
- package/src/EnforcingEntityDeleter.ts +5 -5
- package/src/EnforcingEntityLoader.ts +158 -21
- package/src/EnforcingEntityUpdater.ts +5 -5
- package/src/Entity.ts +185 -29
- package/src/EntityAssociationLoader.ts +6 -6
- package/src/EntityCompanion.ts +11 -11
- package/src/EntityCompanionProvider.ts +21 -18
- package/src/EntityConfiguration.ts +123 -9
- package/src/EntityCreator.ts +7 -7
- package/src/EntityDatabaseAdapter.ts +51 -28
- package/src/EntityDeleter.ts +7 -7
- package/src/EntityFieldDefinition.ts +32 -12
- package/src/EntityFields.ts +49 -12
- package/src/EntityLoader.ts +8 -8
- package/src/EntityLoaderFactory.ts +8 -8
- package/src/EntityLoaderUtils.ts +39 -10
- package/src/EntityMutationInfo.ts +6 -6
- package/src/EntityMutationTriggerConfiguration.ts +68 -20
- package/src/EntityMutationValidator.ts +4 -4
- package/src/EntityMutatorFactory.ts +13 -13
- package/src/EntityPrivacyPolicy.ts +50 -26
- package/src/EntitySecondaryCacheLoader.ts +6 -6
- package/src/EntityUpdater.ts +7 -7
- package/src/GenericEntityCacheAdapter.ts +39 -28
- package/src/GenericSecondaryEntityCache.ts +6 -3
- package/src/IEntityCacheAdapter.ts +45 -25
- package/src/IEntityCacheAdapterProvider.ts +3 -3
- package/src/IEntityDatabaseAdapterProvider.ts +3 -3
- package/src/IEntityGenericCacher.ts +33 -5
- package/src/ReadonlyEntity.ts +129 -16
- package/src/ViewerContext.ts +5 -5
- package/src/ViewerScopedEntityCompanion.ts +7 -7
- package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
- package/src/ViewerScopedEntityLoaderFactory.ts +7 -7
- package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +41 -72
- package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -13
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +367 -69
- package/src/__tests__/ComposedCacheAdapter-test.ts +235 -117
- package/src/__tests__/EnforcingEntityLoader-test.ts +135 -1
- package/src/__tests__/Entity-test.ts +64 -11
- package/src/__tests__/EntityAssociationLoader-test.ts +6 -8
- package/src/__tests__/EntityCommonUseCases-test.ts +25 -28
- package/src/__tests__/EntityCompanion-test.ts +4 -4
- package/src/__tests__/EntityCompanionProvider-test.ts +9 -8
- package/src/__tests__/EntityConfiguration-test.ts +85 -6
- package/src/__tests__/EntityDatabaseAdapter-test.ts +113 -17
- package/src/__tests__/EntityEdges-test.ts +135 -138
- package/src/__tests__/EntityFields-test.ts +2 -2
- package/src/__tests__/EntityLoader-test.ts +5 -7
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +17 -19
- package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +73 -0
- package/src/__tests__/EntityMutator-test.ts +74 -46
- package/src/__tests__/EntityPrivacyPolicy-test.ts +51 -74
- package/src/__tests__/EntityQueryContext-test.ts +1 -1
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +9 -9
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +119 -122
- package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
- package/src/__tests__/ReadonlyEntity-test.ts +49 -9
- package/src/__tests__/ViewerContext-test.ts +1 -1
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +5 -2
- package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +1 -1
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +12 -3
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +25 -27
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +28 -34
- package/src/entityUtils.ts +4 -1
- package/src/errors/EntityInvalidFieldValueError.ts +5 -5
- package/src/errors/EntityNotAuthorizedError.ts +3 -3
- package/src/errors/EntityNotFoundError.ts +5 -5
- package/src/index.ts +7 -7
- package/src/internal/CompositeFieldHolder.ts +218 -0
- package/src/internal/CompositeFieldValueMap.ts +78 -0
- package/src/internal/EntityDataManager.ts +107 -96
- package/src/internal/EntityFieldTransformationUtils.ts +33 -14
- package/src/internal/EntityLoadInterfaces.ts +143 -0
- package/src/internal/EntityTableDataCoordinator.ts +8 -5
- package/src/internal/ReadThroughEntityCache.ts +63 -50
- package/src/internal/SingleFieldHolder.ts +131 -0
- package/src/internal/__tests__/CompositeFieldHolder-test.ts +25 -0
- package/src/internal/__tests__/CompositeFieldValueMap-test.ts +43 -0
- package/src/internal/__tests__/EntityDataManager-test.ts +308 -91
- package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -2
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +315 -107
- package/src/metrics/EntityMetricsUtils.ts +7 -2
- package/src/metrics/IEntityMetricsAdapter.ts +6 -0
- package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
- package/src/rules/PrivacyPolicyRule.ts +4 -4
- package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +1 -1
- package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +1 -1
- package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +1 -1
- package/src/utils/EntityPrivacyUtils.ts +72 -30
- package/src/utils/{testing → __testfixtures__}/PrivacyPolicyRuleTestUtils.ts +26 -26
- package/src/{testfixtures → utils/__testfixtures__}/SimpleTestEntity.ts +16 -15
- package/src/utils/__testfixtures__/StubCacheAdapter.ts +164 -0
- package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapter.ts +19 -12
- package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapterProvider.ts +4 -4
- package/src/utils/__testfixtures__/TSMockitoExtensions.ts +69 -0
- package/src/{testfixtures → utils/__testfixtures__}/TestEntity.ts +21 -15
- package/src/{testfixtures → utils/__testfixtures__}/TestEntity2.ts +16 -15
- package/src/{testfixtures → utils/__testfixtures__}/TestEntityWithMutationTriggers.ts +23 -22
- package/src/{testfixtures → utils/__testfixtures__}/TestViewerContext.ts +1 -1
- package/src/utils/{testing → __testfixtures__}/describeFieldTestCase.ts +1 -1
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +81 -113
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +31 -30
- package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +1 -1
- package/src/utils/collections/SerializableKeyMap.ts +84 -0
- package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +119 -0
- package/src/utils/collections/__tests__/sets-test.ts +17 -0
- package/src/utils/collections/maps.ts +7 -8
- package/src/utils/collections/sets.ts +3 -0
- package/src/utils/mergeEntityMutationTriggerConfigurations.ts +5 -5
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -273
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -110
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -401
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
- package/build/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
- package/build/__tests__/ComposedCacheAdapter-test.js +0 -229
- package/build/__tests__/ComposedCacheAdapter-test.js.map +0 -1
- package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
- package/build/__tests__/ComposedSecondaryEntityCache-test.js +0 -66
- package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
- package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js +0 -115
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
- package/build/__tests__/EnforcingEntityLoader-test.js +0 -253
- package/build/__tests__/EnforcingEntityLoader-test.js.map +0 -1
- package/build/__tests__/Entity-test.d.ts +0 -1
- package/build/__tests__/Entity-test.js +0 -54
- package/build/__tests__/Entity-test.js.map +0 -1
- package/build/__tests__/EntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/EntityAssociationLoader-test.js +0 -30
- package/build/__tests__/EntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/EntityCommonUseCases-test.d.ts +0 -1
- package/build/__tests__/EntityCommonUseCases-test.js +0 -154
- package/build/__tests__/EntityCommonUseCases-test.js.map +0 -1
- package/build/__tests__/EntityCompanion-test.d.ts +0 -1
- package/build/__tests__/EntityCompanion-test.js +0 -77
- package/build/__tests__/EntityCompanion-test.js.map +0 -1
- package/build/__tests__/EntityCompanionProvider-test.d.ts +0 -1
- package/build/__tests__/EntityCompanionProvider-test.js +0 -54
- package/build/__tests__/EntityCompanionProvider-test.js.map +0 -1
- package/build/__tests__/EntityConfiguration-test.d.ts +0 -1
- package/build/__tests__/EntityConfiguration-test.js +0 -103
- package/build/__tests__/EntityConfiguration-test.js.map +0 -1
- package/build/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
- package/build/__tests__/EntityDatabaseAdapter-test.js +0 -146
- package/build/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
- package/build/__tests__/EntityEdges-test.d.ts +0 -1
- package/build/__tests__/EntityEdges-test.js +0 -755
- package/build/__tests__/EntityEdges-test.js.map +0 -1
- package/build/__tests__/EntityFields-test.d.ts +0 -1
- package/build/__tests__/EntityFields-test.js +0 -63
- package/build/__tests__/EntityFields-test.js.map +0 -1
- package/build/__tests__/EntityLoader-test.d.ts +0 -1
- package/build/__tests__/EntityLoader-test.js +0 -36
- package/build/__tests__/EntityLoader-test.js.map +0 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -77
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
- package/build/__tests__/EntityMutator-test.d.ts +0 -1
- package/build/__tests__/EntityMutator-test.js +0 -741
- package/build/__tests__/EntityMutator-test.js.map +0 -1
- package/build/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +0 -463
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
- package/build/__tests__/EntityQueryContext-test.d.ts +0 -1
- package/build/__tests__/EntityQueryContext-test.js +0 -116
- package/build/__tests__/EntityQueryContext-test.js.map +0 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +0 -60
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +0 -247
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
- package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
- package/build/__tests__/GenericEntityCacheAdapter-test.js +0 -80
- package/build/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
- package/build/__tests__/ReadonlyEntity-test.d.ts +0 -1
- package/build/__tests__/ReadonlyEntity-test.js +0 -178
- package/build/__tests__/ReadonlyEntity-test.js.map +0 -1
- package/build/__tests__/ViewerContext-test.d.ts +0 -1
- package/build/__tests__/ViewerContext-test.js +0 -30
- package/build/__tests__/ViewerContext-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.js +0 -20
- package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -20
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -23
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -22
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -129
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -136
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
- package/build/__tests__/entityUtils-test.d.ts +0 -1
- package/build/__tests__/entityUtils-test.js +0 -87
- package/build/__tests__/entityUtils-test.js.map +0 -1
- package/build/internal/__tests__/EntityDataManager-test.d.ts +0 -1
- package/build/internal/__tests__/EntityDataManager-test.js +0 -373
- package/build/internal/__tests__/EntityDataManager-test.js.map +0 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -136
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -206
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
- package/build/testfixtures/DateIDTestEntity.d.ts +0 -19
- package/build/testfixtures/DateIDTestEntity.js +0 -48
- package/build/testfixtures/DateIDTestEntity.js.map +0 -1
- package/build/testfixtures/SimpleTestEntity.d.ts +0 -20
- package/build/testfixtures/SimpleTestEntity.js +0 -48
- package/build/testfixtures/SimpleTestEntity.js.map +0 -1
- package/build/testfixtures/TestEntity.d.ts +0 -30
- package/build/testfixtures/TestEntity.js +0 -93
- package/build/testfixtures/TestEntity.js.map +0 -1
- package/build/testfixtures/TestEntity2.d.ts +0 -20
- package/build/testfixtures/TestEntity2.js +0 -51
- package/build/testfixtures/TestEntity2.js.map +0 -1
- package/build/testfixtures/TestEntityNumberKey.d.ts +0 -19
- package/build/testfixtures/TestEntityNumberKey.js +0 -48
- package/build/testfixtures/TestEntityNumberKey.js.map +0 -1
- package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +0 -36
- package/build/testfixtures/TestEntityWithMutationTriggers.js +0 -82
- package/build/testfixtures/TestEntityWithMutationTriggers.js.map +0 -1
- package/build/testfixtures/TestViewerContext.d.ts +0 -3
- package/build/testfixtures/TestViewerContext.js +0 -10
- package/build/testfixtures/TestViewerContext.js.map +0 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.js +0 -520
- package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -181
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -26
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
- package/build/utils/collections/__tests__/maps-test.d.ts +0 -1
- package/build/utils/collections/__tests__/maps-test.js +0 -120
- package/build/utils/collections/__tests__/maps-test.js.map +0 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +0 -28
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +0 -52
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +0 -1
- package/build/utils/testing/StubCacheAdapter.d.ts +0 -27
- package/build/utils/testing/StubCacheAdapter.js +0 -86
- package/build/utils/testing/StubCacheAdapter.js.map +0 -1
- package/build/utils/testing/StubDatabaseAdapter.d.ts +0 -25
- package/build/utils/testing/StubDatabaseAdapter.js +0 -191
- package/build/utils/testing/StubDatabaseAdapter.js.map +0 -1
- package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +0 -7
- package/build/utils/testing/StubDatabaseAdapterProvider.js +0 -14
- package/build/utils/testing/StubDatabaseAdapterProvider.js.map +0 -1
- package/build/utils/testing/StubQueryContextProvider.d.ts +0 -7
- package/build/utils/testing/StubQueryContextProvider.js +0 -19
- package/build/utils/testing/StubQueryContextProvider.js.map +0 -1
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -42
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +0 -402
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +0 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.d.ts +0 -7
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js +0 -36
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +0 -1
- package/build/utils/testing/describeFieldTestCase.d.ts +0 -2
- package/build/utils/testing/describeFieldTestCase.js +0 -18
- package/build/utils/testing/describeFieldTestCase.js.map +0 -1
- package/src/testfixtures/DateIDTestEntity.ts +0 -59
- package/src/testfixtures/TestEntityNumberKey.ts +0 -59
- package/src/utils/testing/StubCacheAdapter.ts +0 -122
- package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +0 -42
- package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +0 -548
- /package/src/utils/{testing → __testfixtures__}/StubQueryContextProvider.ts +0 -0
- /package/src/utils/{testing → __testfixtures__}/createUnitTestEntityCompanionProvider.ts +0 -0
|
@@ -13,10 +13,11 @@ import EntityPrivacyPolicy, {
|
|
|
13
13
|
} from '../EntityPrivacyPolicy';
|
|
14
14
|
import { EntityTransactionalQueryContext, EntityQueryContext } from '../EntityQueryContext';
|
|
15
15
|
import { CacheStatus } from '../internal/ReadThroughEntityCache';
|
|
16
|
+
import { SingleFieldHolder, SingleFieldValueHolder } from '../internal/SingleFieldHolder';
|
|
16
17
|
import PrivacyPolicyRule, { RuleEvaluationResult } from '../rules/PrivacyPolicyRule';
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import { createUnitTestEntityCompanionProvider } from '../utils/
|
|
18
|
+
import { InMemoryFullCacheStubCacheAdapter } from '../utils/__testfixtures__/StubCacheAdapter';
|
|
19
|
+
import TestViewerContext from '../utils/__testfixtures__/TestViewerContext';
|
|
20
|
+
import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
|
|
20
21
|
|
|
21
22
|
interface OtherFields {
|
|
22
23
|
id: string;
|
|
@@ -73,7 +74,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
73
74
|
|
|
74
75
|
class AlwaysAllowPrivacyPolicyRuleThatRecords extends PrivacyPolicyRule<
|
|
75
76
|
any,
|
|
76
|
-
|
|
77
|
+
'id',
|
|
77
78
|
TestViewerContext,
|
|
78
79
|
any,
|
|
79
80
|
any
|
|
@@ -87,7 +88,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
87
88
|
_queryContext: EntityQueryContext,
|
|
88
89
|
evaluationContext: EntityPrivacyPolicyEvaluationContext<
|
|
89
90
|
any,
|
|
90
|
-
|
|
91
|
+
'id',
|
|
91
92
|
TestViewerContext,
|
|
92
93
|
any,
|
|
93
94
|
any
|
|
@@ -105,7 +106,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
105
106
|
|
|
106
107
|
class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<
|
|
107
108
|
any,
|
|
108
|
-
|
|
109
|
+
'id',
|
|
109
110
|
TestViewerContext,
|
|
110
111
|
any,
|
|
111
112
|
any
|
|
@@ -126,7 +127,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
126
127
|
|
|
127
128
|
class ParentCheckInfoDeletionTrigger extends EntityMutationTrigger<
|
|
128
129
|
ParentFields,
|
|
129
|
-
|
|
130
|
+
'id',
|
|
130
131
|
TestViewerContext,
|
|
131
132
|
ParentEntity
|
|
132
133
|
> {
|
|
@@ -134,12 +135,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
134
135
|
_viewerContext: TestViewerContext,
|
|
135
136
|
_queryContext: EntityTransactionalQueryContext,
|
|
136
137
|
_entity: ParentEntity,
|
|
137
|
-
mutationInfo: EntityTriggerMutationInfo<
|
|
138
|
-
ParentFields,
|
|
139
|
-
string,
|
|
140
|
-
TestViewerContext,
|
|
141
|
-
ParentEntity
|
|
142
|
-
>,
|
|
138
|
+
mutationInfo: EntityTriggerMutationInfo<ParentFields, 'id', TestViewerContext, ParentEntity>,
|
|
143
139
|
): Promise<void> {
|
|
144
140
|
invariant(mutationInfo.type === EntityMutationType.DELETE, 'invalid EntityMutationType');
|
|
145
141
|
if (mutationInfo.cascadingDeleteCause !== null) {
|
|
@@ -152,7 +148,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
152
148
|
|
|
153
149
|
class ParentCheckInfoUpdateTrigger extends EntityMutationTrigger<
|
|
154
150
|
ParentFields,
|
|
155
|
-
|
|
151
|
+
'id',
|
|
156
152
|
TestViewerContext,
|
|
157
153
|
ParentEntity
|
|
158
154
|
> {
|
|
@@ -160,12 +156,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
160
156
|
_viewerContext: TestViewerContext,
|
|
161
157
|
_queryContext: EntityTransactionalQueryContext,
|
|
162
158
|
_entity: ParentEntity,
|
|
163
|
-
mutationInfo: EntityTriggerMutationInfo<
|
|
164
|
-
ParentFields,
|
|
165
|
-
string,
|
|
166
|
-
TestViewerContext,
|
|
167
|
-
ParentEntity
|
|
168
|
-
>,
|
|
159
|
+
mutationInfo: EntityTriggerMutationInfo<ParentFields, 'id', TestViewerContext, ParentEntity>,
|
|
169
160
|
): Promise<void> {
|
|
170
161
|
invariant(mutationInfo.type === EntityMutationType.UPDATE, 'invalid EntityMutationType');
|
|
171
162
|
if (mutationInfo.cascadingDeleteCause !== null) {
|
|
@@ -178,7 +169,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
178
169
|
|
|
179
170
|
class ChildCheckInfoDeletionTrigger extends EntityMutationTrigger<
|
|
180
171
|
ChildFields,
|
|
181
|
-
|
|
172
|
+
'id',
|
|
182
173
|
TestViewerContext,
|
|
183
174
|
ChildEntity
|
|
184
175
|
> {
|
|
@@ -186,7 +177,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
186
177
|
_viewerContext: TestViewerContext,
|
|
187
178
|
_queryContext: EntityTransactionalQueryContext,
|
|
188
179
|
_entity: ChildEntity,
|
|
189
|
-
mutationInfo: EntityTriggerMutationInfo<ChildFields,
|
|
180
|
+
mutationInfo: EntityTriggerMutationInfo<ChildFields, 'id', TestViewerContext, ChildEntity>,
|
|
190
181
|
): Promise<void> {
|
|
191
182
|
invariant(mutationInfo.type === EntityMutationType.DELETE, 'invalid EntityMutationType');
|
|
192
183
|
if (mutationInfo.cascadingDeleteCause === null) {
|
|
@@ -210,7 +201,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
210
201
|
|
|
211
202
|
class ChildCheckInfoUpdateTrigger extends EntityMutationTrigger<
|
|
212
203
|
ChildFields,
|
|
213
|
-
|
|
204
|
+
'id',
|
|
214
205
|
TestViewerContext,
|
|
215
206
|
ChildEntity
|
|
216
207
|
> {
|
|
@@ -218,7 +209,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
218
209
|
_viewerContext: TestViewerContext,
|
|
219
210
|
_queryContext: EntityTransactionalQueryContext,
|
|
220
211
|
_entity: ChildEntity,
|
|
221
|
-
mutationInfo: EntityTriggerMutationInfo<ChildFields,
|
|
212
|
+
mutationInfo: EntityTriggerMutationInfo<ChildFields, 'id', TestViewerContext, ChildEntity>,
|
|
222
213
|
): Promise<void> {
|
|
223
214
|
invariant(mutationInfo.type === EntityMutationType.UPDATE, 'invalid EntityMutationType');
|
|
224
215
|
if (mutationInfo.cascadingDeleteCause === null) {
|
|
@@ -242,7 +233,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
242
233
|
|
|
243
234
|
class GrandChildCheckInfoDeletionTrigger extends EntityMutationTrigger<
|
|
244
235
|
GrandChildFields,
|
|
245
|
-
|
|
236
|
+
'id',
|
|
246
237
|
TestViewerContext,
|
|
247
238
|
GrandChildEntity
|
|
248
239
|
> {
|
|
@@ -252,7 +243,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
252
243
|
_entity: GrandChildEntity,
|
|
253
244
|
mutationInfo: EntityTriggerMutationInfo<
|
|
254
245
|
GrandChildFields,
|
|
255
|
-
|
|
246
|
+
'id',
|
|
256
247
|
TestViewerContext,
|
|
257
248
|
GrandChildEntity
|
|
258
249
|
>,
|
|
@@ -293,7 +284,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
293
284
|
|
|
294
285
|
class GrandChildCheckInfoUpdateTrigger extends EntityMutationTrigger<
|
|
295
286
|
GrandChildFields,
|
|
296
|
-
|
|
287
|
+
'id',
|
|
297
288
|
TestViewerContext,
|
|
298
289
|
GrandChildEntity
|
|
299
290
|
> {
|
|
@@ -303,7 +294,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
303
294
|
_entity: GrandChildEntity,
|
|
304
295
|
mutationInfo: EntityTriggerMutationInfo<
|
|
305
296
|
GrandChildFields,
|
|
306
|
-
|
|
297
|
+
'id',
|
|
307
298
|
TestViewerContext,
|
|
308
299
|
GrandChildEntity
|
|
309
300
|
>,
|
|
@@ -342,10 +333,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
342
333
|
}
|
|
343
334
|
}
|
|
344
335
|
|
|
345
|
-
class OtherEntity extends Entity<OtherFields,
|
|
336
|
+
class OtherEntity extends Entity<OtherFields, 'id', TestViewerContext> {
|
|
346
337
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
347
338
|
OtherFields,
|
|
348
|
-
|
|
339
|
+
'id',
|
|
349
340
|
TestViewerContext,
|
|
350
341
|
OtherEntity,
|
|
351
342
|
TestEntityPrivacyPolicy
|
|
@@ -358,10 +349,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
358
349
|
}
|
|
359
350
|
}
|
|
360
351
|
|
|
361
|
-
class ParentEntity extends Entity<ParentFields,
|
|
352
|
+
class ParentEntity extends Entity<ParentFields, 'id', TestViewerContext> {
|
|
362
353
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
363
354
|
ParentFields,
|
|
364
|
-
|
|
355
|
+
'id',
|
|
365
356
|
TestViewerContext,
|
|
366
357
|
ParentEntity,
|
|
367
358
|
TestEntityPrivacyPolicy
|
|
@@ -381,10 +372,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
381
372
|
}
|
|
382
373
|
}
|
|
383
374
|
|
|
384
|
-
class ChildEntity extends Entity<ChildFields,
|
|
375
|
+
class ChildEntity extends Entity<ChildFields, 'id', TestViewerContext> {
|
|
385
376
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
386
377
|
ChildFields,
|
|
387
|
-
|
|
378
|
+
'id',
|
|
388
379
|
TestViewerContext,
|
|
389
380
|
ChildEntity,
|
|
390
381
|
TestEntityPrivacyPolicy
|
|
@@ -404,10 +395,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
404
395
|
}
|
|
405
396
|
}
|
|
406
397
|
|
|
407
|
-
class GrandChildEntity extends Entity<GrandChildFields,
|
|
398
|
+
class GrandChildEntity extends Entity<GrandChildFields, 'id', TestViewerContext> {
|
|
408
399
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
409
400
|
GrandChildFields,
|
|
410
|
-
|
|
401
|
+
'id',
|
|
411
402
|
TestViewerContext,
|
|
412
403
|
GrandChildEntity,
|
|
413
404
|
TestEntityPrivacyPolicy
|
|
@@ -427,7 +418,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
427
418
|
}
|
|
428
419
|
}
|
|
429
420
|
|
|
430
|
-
const otherEntityConfiguration = new EntityConfiguration<OtherFields>({
|
|
421
|
+
const otherEntityConfiguration = new EntityConfiguration<OtherFields, 'id'>({
|
|
431
422
|
idField: 'id',
|
|
432
423
|
tableName: 'others',
|
|
433
424
|
schema: {
|
|
@@ -440,7 +431,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
440
431
|
cacheAdapterFlavor: 'redis',
|
|
441
432
|
});
|
|
442
433
|
|
|
443
|
-
const parentEntityConfiguration = new EntityConfiguration<ParentFields>({
|
|
434
|
+
const parentEntityConfiguration = new EntityConfiguration<ParentFields, 'id'>({
|
|
444
435
|
idField: 'id',
|
|
445
436
|
tableName: 'parents',
|
|
446
437
|
inboundEdges: [ChildEntity],
|
|
@@ -454,7 +445,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
454
445
|
cacheAdapterFlavor: 'redis',
|
|
455
446
|
});
|
|
456
447
|
|
|
457
|
-
const childEntityConfiguration = new EntityConfiguration<ChildFields>({
|
|
448
|
+
const childEntityConfiguration = new EntityConfiguration<ChildFields, 'id'>({
|
|
458
449
|
idField: 'id',
|
|
459
450
|
tableName: 'children',
|
|
460
451
|
inboundEdges: [GrandChildEntity],
|
|
@@ -484,7 +475,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
|
|
|
484
475
|
cacheAdapterFlavor: 'redis',
|
|
485
476
|
});
|
|
486
477
|
|
|
487
|
-
const grandChildEntityConfiguration = new EntityConfiguration<GrandChildFields>({
|
|
478
|
+
const grandChildEntityConfiguration = new EntityConfiguration<GrandChildFields, 'id'>({
|
|
488
479
|
idField: 'id',
|
|
489
480
|
tableName: 'grandchildren',
|
|
490
481
|
schema: {
|
|
@@ -527,42 +518,36 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
|
|
|
527
518
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
528
519
|
const viewerContext = new TestViewerContext(companionProvider);
|
|
529
520
|
|
|
530
|
-
const parent = await ParentEntity.creator(viewerContext).
|
|
521
|
+
const parent = await ParentEntity.creator(viewerContext).createAsync();
|
|
531
522
|
const child = await ChildEntity.creator(viewerContext)
|
|
532
|
-
.enforcing()
|
|
533
523
|
.setField('parent_id', parent.getID())
|
|
534
524
|
.createAsync();
|
|
535
525
|
const grandchild = await GrandChildEntity.creator(viewerContext)
|
|
536
|
-
.enforcing()
|
|
537
526
|
.setField('parent_id', child.getID())
|
|
538
527
|
.createAsync();
|
|
539
528
|
|
|
540
529
|
await expect(
|
|
541
|
-
ParentEntity.loader(viewerContext).
|
|
530
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
542
531
|
).resolves.not.toBeNull();
|
|
543
532
|
await expect(
|
|
544
|
-
ChildEntity.loader(viewerContext).
|
|
533
|
+
ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
|
|
545
534
|
).resolves.not.toBeNull();
|
|
546
535
|
await expect(
|
|
547
|
-
GrandChildEntity.loader(viewerContext)
|
|
548
|
-
.enforcing()
|
|
549
|
-
.loadByIDNullableAsync(grandchild.getID()),
|
|
536
|
+
GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
|
|
550
537
|
).resolves.not.toBeNull();
|
|
551
538
|
|
|
552
539
|
privacyPolicyEvaluationRecords.shouldRecord = true;
|
|
553
|
-
await ParentEntity.deleter(parent).
|
|
540
|
+
await ParentEntity.deleter(parent).deleteAsync();
|
|
554
541
|
privacyPolicyEvaluationRecords.shouldRecord = false;
|
|
555
542
|
|
|
556
543
|
await expect(
|
|
557
|
-
ParentEntity.loader(viewerContext).
|
|
544
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
558
545
|
).resolves.toBeNull();
|
|
559
546
|
await expect(
|
|
560
|
-
ChildEntity.loader(viewerContext).
|
|
547
|
+
ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
|
|
561
548
|
).resolves.toBeNull();
|
|
562
549
|
await expect(
|
|
563
|
-
GrandChildEntity.loader(viewerContext)
|
|
564
|
-
.enforcing()
|
|
565
|
-
.loadByIDNullableAsync(grandchild.getID()),
|
|
550
|
+
GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
|
|
566
551
|
).resolves.toBeNull();
|
|
567
552
|
|
|
568
553
|
// two calls for each trigger, one beforeDelete, one afterDelete
|
|
@@ -651,44 +636,38 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
|
|
|
651
636
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
652
637
|
const viewerContext = new TestViewerContext(companionProvider);
|
|
653
638
|
|
|
654
|
-
const parent = await ParentEntity.creator(viewerContext).
|
|
639
|
+
const parent = await ParentEntity.creator(viewerContext).createAsync();
|
|
655
640
|
const child = await ChildEntity.creator(viewerContext)
|
|
656
|
-
.enforcing()
|
|
657
641
|
.setField('parent_id', parent.getID())
|
|
658
642
|
.createAsync();
|
|
659
643
|
const grandchild = await GrandChildEntity.creator(viewerContext)
|
|
660
|
-
.enforcing()
|
|
661
644
|
.setField('parent_id', child.getID())
|
|
662
645
|
.createAsync();
|
|
663
646
|
|
|
664
647
|
await expect(
|
|
665
|
-
ParentEntity.loader(viewerContext).
|
|
648
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
666
649
|
).resolves.not.toBeNull();
|
|
667
650
|
await expect(
|
|
668
|
-
ChildEntity.loader(viewerContext).
|
|
651
|
+
ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
|
|
669
652
|
).resolves.not.toBeNull();
|
|
670
653
|
await expect(
|
|
671
|
-
GrandChildEntity.loader(viewerContext)
|
|
672
|
-
.enforcing()
|
|
673
|
-
.loadByIDNullableAsync(grandchild.getID()),
|
|
654
|
+
GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
|
|
674
655
|
).resolves.not.toBeNull();
|
|
675
656
|
|
|
676
657
|
privacyPolicyEvaluationRecords.shouldRecord = true;
|
|
677
|
-
await ParentEntity.deleter(parent).
|
|
658
|
+
await ParentEntity.deleter(parent).deleteAsync();
|
|
678
659
|
privacyPolicyEvaluationRecords.shouldRecord = false;
|
|
679
660
|
|
|
680
661
|
await expect(
|
|
681
|
-
ParentEntity.loader(viewerContext).
|
|
662
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
682
663
|
).resolves.toBeNull();
|
|
683
664
|
|
|
684
|
-
const loadedChild = await ChildEntity.loader(viewerContext)
|
|
685
|
-
.enforcing()
|
|
686
|
-
.loadByIDAsync(child.getID());
|
|
665
|
+
const loadedChild = await ChildEntity.loader(viewerContext).loadByIDAsync(child.getID());
|
|
687
666
|
expect(loadedChild.getField('parent_id')).toBeNull();
|
|
688
667
|
|
|
689
|
-
const loadedGrandchild = await GrandChildEntity.loader(viewerContext)
|
|
690
|
-
.
|
|
691
|
-
|
|
668
|
+
const loadedGrandchild = await GrandChildEntity.loader(viewerContext).loadByIDAsync(
|
|
669
|
+
grandchild.getID(),
|
|
670
|
+
);
|
|
692
671
|
expect(loadedGrandchild.getField('parent_id')).toEqual(loadedChild.getID());
|
|
693
672
|
|
|
694
673
|
// two calls for only parent trigger, one beforeDelete, one afterDelete
|
|
@@ -766,72 +745,81 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
|
|
|
766
745
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
767
746
|
const viewerContext = new TestViewerContext(companionProvider);
|
|
768
747
|
|
|
769
|
-
const parent = await ParentEntity.creator(viewerContext).
|
|
748
|
+
const parent = await ParentEntity.creator(viewerContext).createAsync();
|
|
770
749
|
const child = await ChildEntity.creator(viewerContext)
|
|
771
|
-
.enforcing()
|
|
772
750
|
.setField('parent_id', parent.getID())
|
|
773
751
|
.createAsync();
|
|
774
752
|
const grandchild = await GrandChildEntity.creator(viewerContext)
|
|
775
|
-
.enforcing()
|
|
776
753
|
.setField('parent_id', child.getID())
|
|
777
754
|
.createAsync();
|
|
778
755
|
|
|
779
756
|
await expect(
|
|
780
|
-
ParentEntity.loader(viewerContext).
|
|
757
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
781
758
|
).resolves.not.toBeNull();
|
|
782
759
|
await expect(
|
|
783
|
-
ChildEntity.loader(viewerContext)
|
|
784
|
-
.enforcing()
|
|
785
|
-
.loadByFieldEqualingAsync('parent_id', parent.getID()),
|
|
760
|
+
ChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', parent.getID()),
|
|
786
761
|
).resolves.not.toBeNull();
|
|
787
762
|
await expect(
|
|
788
|
-
GrandChildEntity.loader(viewerContext)
|
|
789
|
-
.enforcing()
|
|
790
|
-
.loadByFieldEqualingAsync('parent_id', child.getID()),
|
|
763
|
+
GrandChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', child.getID()),
|
|
791
764
|
).resolves.not.toBeNull();
|
|
792
765
|
|
|
793
766
|
const childCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(ChildEntity)[
|
|
794
767
|
'entityCompanion'
|
|
795
|
-
]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
768
|
+
]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
|
|
769
|
+
ChildFields,
|
|
770
|
+
'id'
|
|
771
|
+
>;
|
|
772
|
+
const childCachedBefore = await childCacheAdapter.loadManyAsync(
|
|
773
|
+
new SingleFieldHolder('parent_id'),
|
|
774
|
+
[new SingleFieldValueHolder(parent.getID())],
|
|
775
|
+
);
|
|
776
|
+
expect(childCachedBefore.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
|
|
777
|
+
CacheStatus.HIT,
|
|
778
|
+
);
|
|
800
779
|
|
|
801
780
|
const grandChildCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(
|
|
802
781
|
GrandChildEntity,
|
|
803
782
|
)['entityCompanion']['tableDataCoordinator'][
|
|
804
783
|
'cacheAdapter'
|
|
805
|
-
] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
|
|
806
|
-
const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
784
|
+
] as InMemoryFullCacheStubCacheAdapter<ChildFields, 'id'>;
|
|
785
|
+
const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
|
|
786
|
+
new SingleFieldHolder('parent_id'),
|
|
787
|
+
[new SingleFieldValueHolder(child.getID())],
|
|
788
|
+
);
|
|
789
|
+
expect(grandChildCachedBefore.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
|
|
790
|
+
CacheStatus.HIT,
|
|
791
|
+
);
|
|
810
792
|
|
|
811
793
|
privacyPolicyEvaluationRecords.shouldRecord = true;
|
|
812
|
-
await ParentEntity.deleter(parent).
|
|
794
|
+
await ParentEntity.deleter(parent).deleteAsync();
|
|
813
795
|
privacyPolicyEvaluationRecords.shouldRecord = false;
|
|
814
796
|
|
|
815
|
-
const childCachedAfter = await childCacheAdapter.loadManyAsync(
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
797
|
+
const childCachedAfter = await childCacheAdapter.loadManyAsync(
|
|
798
|
+
new SingleFieldHolder('parent_id'),
|
|
799
|
+
[new SingleFieldValueHolder(parent.getID())],
|
|
800
|
+
);
|
|
801
|
+
expect(childCachedAfter.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
|
|
802
|
+
CacheStatus.MISS,
|
|
803
|
+
);
|
|
804
|
+
|
|
805
|
+
const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync(
|
|
806
|
+
new SingleFieldHolder('parent_id'),
|
|
807
|
+
[new SingleFieldValueHolder(child.getID())],
|
|
808
|
+
);
|
|
809
|
+
expect(grandChildCachedAfter.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
|
|
810
|
+
CacheStatus.HIT,
|
|
811
|
+
);
|
|
822
812
|
|
|
823
813
|
await expect(
|
|
824
|
-
ParentEntity.loader(viewerContext).
|
|
814
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
825
815
|
).resolves.toBeNull();
|
|
826
816
|
|
|
827
|
-
const loadedChild = await ChildEntity.loader(viewerContext)
|
|
828
|
-
.enforcing()
|
|
829
|
-
.loadByIDAsync(child.getID());
|
|
817
|
+
const loadedChild = await ChildEntity.loader(viewerContext).loadByIDAsync(child.getID());
|
|
830
818
|
expect(loadedChild).not.toBeNull();
|
|
831
819
|
|
|
832
|
-
const loadedGrandchild = await GrandChildEntity.loader(viewerContext)
|
|
833
|
-
.
|
|
834
|
-
|
|
820
|
+
const loadedGrandchild = await GrandChildEntity.loader(viewerContext).loadByIDAsync(
|
|
821
|
+
grandchild.getID(),
|
|
822
|
+
);
|
|
835
823
|
expect(loadedGrandchild.getField('parent_id')).toEqual(loadedChild.getID());
|
|
836
824
|
|
|
837
825
|
// two calls for only parent trigger, one beforeDelete, one afterDelete
|
|
@@ -907,70 +895,79 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
|
|
|
907
895
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
908
896
|
const viewerContext = new TestViewerContext(companionProvider);
|
|
909
897
|
|
|
910
|
-
const parent = await ParentEntity.creator(viewerContext).
|
|
898
|
+
const parent = await ParentEntity.creator(viewerContext).createAsync();
|
|
911
899
|
const child = await ChildEntity.creator(viewerContext)
|
|
912
|
-
.enforcing()
|
|
913
900
|
.setField('parent_id', parent.getID())
|
|
914
901
|
.createAsync();
|
|
915
902
|
const grandchild = await GrandChildEntity.creator(viewerContext)
|
|
916
|
-
.enforcing()
|
|
917
903
|
.setField('parent_id', child.getID())
|
|
918
904
|
.createAsync();
|
|
919
905
|
|
|
920
906
|
await expect(
|
|
921
|
-
ParentEntity.loader(viewerContext).
|
|
907
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
922
908
|
).resolves.not.toBeNull();
|
|
923
909
|
await expect(
|
|
924
|
-
ChildEntity.loader(viewerContext)
|
|
925
|
-
.enforcing()
|
|
926
|
-
.loadByFieldEqualingAsync('parent_id', parent.getID()),
|
|
910
|
+
ChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', parent.getID()),
|
|
927
911
|
).resolves.not.toBeNull();
|
|
928
912
|
await expect(
|
|
929
|
-
GrandChildEntity.loader(viewerContext)
|
|
930
|
-
.enforcing()
|
|
931
|
-
.loadByFieldEqualingAsync('parent_id', child.getID()),
|
|
913
|
+
GrandChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', child.getID()),
|
|
932
914
|
).resolves.not.toBeNull();
|
|
933
915
|
|
|
934
916
|
const childCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(ChildEntity)[
|
|
935
917
|
'entityCompanion'
|
|
936
|
-
]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
918
|
+
]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
|
|
919
|
+
ChildFields,
|
|
920
|
+
'id'
|
|
921
|
+
>;
|
|
922
|
+
const childCachedBefore = await childCacheAdapter.loadManyAsync(
|
|
923
|
+
new SingleFieldHolder('parent_id'),
|
|
924
|
+
[new SingleFieldValueHolder(parent.getID())],
|
|
925
|
+
);
|
|
926
|
+
expect(childCachedBefore.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
|
|
927
|
+
CacheStatus.HIT,
|
|
928
|
+
);
|
|
941
929
|
|
|
942
930
|
const grandChildCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(
|
|
943
931
|
GrandChildEntity,
|
|
944
932
|
)['entityCompanion']['tableDataCoordinator'][
|
|
945
933
|
'cacheAdapter'
|
|
946
|
-
] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
|
|
947
|
-
const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
934
|
+
] as InMemoryFullCacheStubCacheAdapter<ChildFields, 'id'>;
|
|
935
|
+
const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
|
|
936
|
+
new SingleFieldHolder('parent_id'),
|
|
937
|
+
[new SingleFieldValueHolder(child.getID())],
|
|
938
|
+
);
|
|
939
|
+
expect(grandChildCachedBefore.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
|
|
940
|
+
CacheStatus.HIT,
|
|
941
|
+
);
|
|
951
942
|
|
|
952
943
|
privacyPolicyEvaluationRecords.shouldRecord = true;
|
|
953
|
-
await ParentEntity.deleter(parent).
|
|
944
|
+
await ParentEntity.deleter(parent).deleteAsync();
|
|
954
945
|
privacyPolicyEvaluationRecords.shouldRecord = false;
|
|
955
946
|
|
|
956
|
-
const childCachedAfter = await childCacheAdapter.loadManyAsync(
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
947
|
+
const childCachedAfter = await childCacheAdapter.loadManyAsync(
|
|
948
|
+
new SingleFieldHolder('parent_id'),
|
|
949
|
+
[new SingleFieldValueHolder(parent.getID())],
|
|
950
|
+
);
|
|
951
|
+
expect(childCachedAfter.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
|
|
952
|
+
CacheStatus.MISS,
|
|
953
|
+
);
|
|
954
|
+
|
|
955
|
+
const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync(
|
|
956
|
+
new SingleFieldHolder('parent_id'),
|
|
957
|
+
[new SingleFieldValueHolder(child.getID())],
|
|
958
|
+
);
|
|
959
|
+
expect(grandChildCachedAfter.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
|
|
960
|
+
CacheStatus.MISS,
|
|
961
|
+
);
|
|
963
962
|
|
|
964
963
|
await expect(
|
|
965
|
-
ParentEntity.loader(viewerContext).
|
|
964
|
+
ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
|
|
966
965
|
).resolves.toBeNull();
|
|
967
966
|
await expect(
|
|
968
|
-
ChildEntity.loader(viewerContext).
|
|
967
|
+
ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
|
|
969
968
|
).resolves.not.toBeNull();
|
|
970
969
|
await expect(
|
|
971
|
-
GrandChildEntity.loader(viewerContext)
|
|
972
|
-
.enforcing()
|
|
973
|
-
.loadByIDNullableAsync(grandchild.getID()),
|
|
970
|
+
GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
|
|
974
971
|
).resolves.not.toBeNull();
|
|
975
972
|
|
|
976
973
|
// two calls for each trigger, one beforeDelete, one afterDelete
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
EnumField,
|
|
14
14
|
StrictEnumField,
|
|
15
15
|
} from '../EntityFields';
|
|
16
|
-
import describeFieldTestCase from '../utils/
|
|
16
|
+
import describeFieldTestCase from '../utils/__testfixtures__/describeFieldTestCase';
|
|
17
17
|
|
|
18
|
-
class TestFieldDefinition extends EntityFieldDefinition<string> {
|
|
18
|
+
class TestFieldDefinition extends EntityFieldDefinition<string, false> {
|
|
19
19
|
protected validateInputValueInternal(value: string): boolean {
|
|
20
20
|
return value === 'helloworld';
|
|
21
21
|
}
|
|
@@ -3,17 +3,15 @@ import EnforcingEntityLoader from '../EnforcingEntityLoader';
|
|
|
3
3
|
import EntityLoader from '../EntityLoader';
|
|
4
4
|
import EntityLoaderUtils from '../EntityLoaderUtils';
|
|
5
5
|
import ViewerContext from '../ViewerContext';
|
|
6
|
-
import SimpleTestEntity from '../
|
|
7
|
-
import { createUnitTestEntityCompanionProvider } from '../utils/
|
|
6
|
+
import SimpleTestEntity from '../utils/__testfixtures__/SimpleTestEntity';
|
|
7
|
+
import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
|
|
8
8
|
|
|
9
9
|
describe(EntityLoader, () => {
|
|
10
10
|
describe('enforcing', () => {
|
|
11
11
|
it('creates a new EnforcingEntityLoader', async () => {
|
|
12
12
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
13
13
|
const viewerContext = new ViewerContext(companionProvider);
|
|
14
|
-
expect(SimpleTestEntity.loader(viewerContext)
|
|
15
|
-
EnforcingEntityLoader,
|
|
16
|
-
);
|
|
14
|
+
expect(SimpleTestEntity.loader(viewerContext)).toBeInstanceOf(EnforcingEntityLoader);
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
17
|
|
|
@@ -21,7 +19,7 @@ describe(EntityLoader, () => {
|
|
|
21
19
|
it('creates a new AuthorizationResultBasedEntityLoader', async () => {
|
|
22
20
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
23
21
|
const viewerContext = new ViewerContext(companionProvider);
|
|
24
|
-
expect(SimpleTestEntity.
|
|
22
|
+
expect(SimpleTestEntity.loaderWithAuthorizationResults(viewerContext)).toBeInstanceOf(
|
|
25
23
|
AuthorizationResultBasedEntityLoader,
|
|
26
24
|
);
|
|
27
25
|
});
|
|
@@ -31,7 +29,7 @@ describe(EntityLoader, () => {
|
|
|
31
29
|
it('returns a instance of EntityLoaderUtils', async () => {
|
|
32
30
|
const companionProvider = createUnitTestEntityCompanionProvider();
|
|
33
31
|
const viewerContext = new ViewerContext(companionProvider);
|
|
34
|
-
expect(SimpleTestEntity.
|
|
32
|
+
expect(SimpleTestEntity.loaderUtils(viewerContext)).toBeInstanceOf(EntityLoaderUtils);
|
|
35
33
|
});
|
|
36
34
|
});
|
|
37
35
|
});
|