@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
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const globals_1 = require("@jest/globals");
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const invariant_1 = __importDefault(require("invariant"));
|
|
9
|
-
const EntityCompanionProvider_1 = require("../EntityCompanionProvider");
|
|
10
|
-
const EntityQueryContext_1 = require("../EntityQueryContext");
|
|
11
|
-
const EntityQueryContextProvider_1 = require("../EntityQueryContextProvider");
|
|
12
|
-
const ViewerContext_1 = require("../ViewerContext");
|
|
13
|
-
const NoOpEntityMetricsAdapter_1 = require("../metrics/NoOpEntityMetricsAdapter");
|
|
14
|
-
const StubCacheAdapter_1 = require("../utils/__testfixtures__/StubCacheAdapter");
|
|
15
|
-
const StubDatabaseAdapterProvider_1 = require("../utils/__testfixtures__/StubDatabaseAdapterProvider");
|
|
16
|
-
const createUnitTestEntityCompanionProvider_1 = require("../utils/__testfixtures__/createUnitTestEntityCompanionProvider");
|
|
17
|
-
(0, globals_1.describe)(EntityQueryContext_1.EntityQueryContext, () => {
|
|
18
|
-
(0, globals_1.describe)('callbacks', () => {
|
|
19
|
-
(0, globals_1.it)('calls all callbacks, and calls invalidation first', async () => {
|
|
20
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
21
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
22
|
-
const preCommitFirstCallback = globals_1.jest.fn(async () => { });
|
|
23
|
-
const preCommitSecondCallback = globals_1.jest.fn(async () => { });
|
|
24
|
-
const postCommitInvalidationCallback = globals_1.jest.fn(async () => {
|
|
25
|
-
(0, invariant_1.default)(preCommitFirstCallback.mock.calls.length === 1, 'preCommit should be called before postCommitInvalidation');
|
|
26
|
-
(0, invariant_1.default)(preCommitSecondCallback.mock.calls.length === 1, 'preCommit should be called before postCommitInvalidation');
|
|
27
|
-
});
|
|
28
|
-
const postCommitCallback = globals_1.jest.fn(async () => {
|
|
29
|
-
(0, invariant_1.default)(preCommitFirstCallback.mock.calls.length === 1, 'preCommit should be called before postCommit');
|
|
30
|
-
(0, invariant_1.default)(preCommitSecondCallback.mock.calls.length === 1, 'preCommit should be called before postCommit');
|
|
31
|
-
(0, invariant_1.default)(postCommitInvalidationCallback.mock.calls.length === 1, 'postCommitInvalidation should be called before postCommit');
|
|
32
|
-
});
|
|
33
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
34
|
-
queryContext.appendPostCommitCallback(postCommitCallback);
|
|
35
|
-
queryContext.appendPostCommitInvalidationCallback(postCommitInvalidationCallback);
|
|
36
|
-
queryContext.appendPreCommitCallback(preCommitSecondCallback, 2);
|
|
37
|
-
queryContext.appendPreCommitCallback(preCommitFirstCallback, 1);
|
|
38
|
-
});
|
|
39
|
-
(0, globals_1.expect)(preCommitFirstCallback).toHaveBeenCalledTimes(1);
|
|
40
|
-
(0, globals_1.expect)(preCommitSecondCallback).toHaveBeenCalledTimes(1);
|
|
41
|
-
(0, globals_1.expect)(postCommitCallback).toHaveBeenCalledTimes(1);
|
|
42
|
-
(0, globals_1.expect)(postCommitInvalidationCallback).toHaveBeenCalledTimes(1);
|
|
43
|
-
});
|
|
44
|
-
(0, globals_1.it)('prevents transaction from finishing when precommit throws (post commit callbacks are not called)', async () => {
|
|
45
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
46
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
47
|
-
const preCommitCallback = globals_1.jest.fn(async () => {
|
|
48
|
-
throw new Error('wat');
|
|
49
|
-
});
|
|
50
|
-
const postCommitInvalidationCallback = globals_1.jest.fn(async () => { });
|
|
51
|
-
const postCommitCallback = globals_1.jest.fn(async () => { });
|
|
52
|
-
await (0, globals_1.expect)(viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
53
|
-
queryContext.appendPostCommitCallback(postCommitCallback);
|
|
54
|
-
queryContext.appendPostCommitInvalidationCallback(postCommitInvalidationCallback);
|
|
55
|
-
queryContext.appendPreCommitCallback(preCommitCallback, 0);
|
|
56
|
-
})).rejects.toThrow('wat');
|
|
57
|
-
(0, globals_1.expect)(preCommitCallback).toHaveBeenCalledTimes(1);
|
|
58
|
-
(0, globals_1.expect)(postCommitCallback).toHaveBeenCalledTimes(0);
|
|
59
|
-
(0, globals_1.expect)(postCommitInvalidationCallback).toHaveBeenCalledTimes(0);
|
|
60
|
-
});
|
|
61
|
-
(0, globals_1.it)('calls callbacks correctly for nested transactions', async () => {
|
|
62
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
63
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
64
|
-
const preCommitCallback = globals_1.jest.fn(async () => { });
|
|
65
|
-
const preCommitNestedCallback = globals_1.jest.fn(async () => { });
|
|
66
|
-
const preCommitNestedCallbackThrow = globals_1.jest.fn(async () => {
|
|
67
|
-
throw new Error('wat');
|
|
68
|
-
});
|
|
69
|
-
const postCommitInvalidationCallback = globals_1.jest.fn(async () => { });
|
|
70
|
-
const postCommitNestedInvalidationCallback = globals_1.jest.fn(async () => { });
|
|
71
|
-
const postCommitCallback = globals_1.jest.fn(async () => { });
|
|
72
|
-
const postCommitNestedCallback = globals_1.jest.fn(async () => { });
|
|
73
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
74
|
-
queryContext.appendPostCommitCallback(postCommitCallback);
|
|
75
|
-
queryContext.appendPostCommitInvalidationCallback(postCommitInvalidationCallback);
|
|
76
|
-
queryContext.appendPreCommitCallback(preCommitCallback, 0);
|
|
77
|
-
await Promise.all([
|
|
78
|
-
queryContext.runInNestedTransactionAsync(async (innerQueryContext) => {
|
|
79
|
-
innerQueryContext.appendPostCommitCallback(postCommitNestedCallback);
|
|
80
|
-
innerQueryContext.appendPostCommitInvalidationCallback(postCommitNestedInvalidationCallback);
|
|
81
|
-
innerQueryContext.appendPreCommitCallback(preCommitNestedCallback, 0);
|
|
82
|
-
}),
|
|
83
|
-
(async () => {
|
|
84
|
-
try {
|
|
85
|
-
await queryContext.runInNestedTransactionAsync(async (innerQueryContext) => {
|
|
86
|
-
// these two shouldn't be called due to throwing pre-commit callback
|
|
87
|
-
innerQueryContext.appendPostCommitCallback(postCommitNestedCallback);
|
|
88
|
-
innerQueryContext.appendPostCommitInvalidationCallback(postCommitNestedInvalidationCallback);
|
|
89
|
-
innerQueryContext.appendPreCommitCallback(preCommitNestedCallbackThrow, 0);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
catch { }
|
|
93
|
-
})(),
|
|
94
|
-
]);
|
|
95
|
-
});
|
|
96
|
-
(0, globals_1.expect)(preCommitCallback).toHaveBeenCalledTimes(1);
|
|
97
|
-
(0, globals_1.expect)(preCommitNestedCallback).toHaveBeenCalledTimes(1);
|
|
98
|
-
(0, globals_1.expect)(preCommitNestedCallbackThrow).toHaveBeenCalledTimes(1);
|
|
99
|
-
(0, globals_1.expect)(postCommitCallback).toHaveBeenCalledTimes(1);
|
|
100
|
-
(0, globals_1.expect)(postCommitInvalidationCallback).toHaveBeenCalledTimes(1);
|
|
101
|
-
(0, globals_1.expect)(postCommitNestedInvalidationCallback).toHaveBeenCalledTimes(2);
|
|
102
|
-
(0, globals_1.expect)(postCommitNestedCallback).toHaveBeenCalledTimes(1);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
(0, globals_1.describe)('transaction config', () => {
|
|
106
|
-
(0, globals_1.it)('passes it into the provider', async () => {
|
|
107
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
108
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
109
|
-
const queryContextProvider = companionProvider.getQueryContextProviderForDatabaseAdaptorFlavor('postgres');
|
|
110
|
-
const queryContextProviderSpy = globals_1.jest.spyOn(queryContextProvider, 'runInTransactionAsync');
|
|
111
|
-
const transactionScopeFn = async () => { };
|
|
112
|
-
const transactionConfig = { isolationLevel: EntityQueryContext_1.TransactionIsolationLevel.SERIALIZABLE };
|
|
113
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', transactionScopeFn, transactionConfig);
|
|
114
|
-
(0, globals_1.expect)(queryContextProviderSpy).toHaveBeenCalledWith(transactionScopeFn, transactionConfig);
|
|
115
|
-
});
|
|
116
|
-
(0, globals_1.it)('makes the result query context enable/disable transactional dataloaders', async () => {
|
|
117
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
118
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
119
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
120
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
121
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED);
|
|
122
|
-
}, { transactionalDataLoaderMode: EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED });
|
|
123
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
124
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
125
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED_BATCH_ONLY);
|
|
126
|
-
}, { transactionalDataLoaderMode: EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED_BATCH_ONLY });
|
|
127
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
128
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
129
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED);
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
(0, globals_1.describe)('global defaultTransactionalDataLoaderMode', () => {
|
|
134
|
-
class StubQueryContextProviderWithDisabledTransactionalDataLoaders extends EntityQueryContextProvider_1.EntityQueryContextProvider {
|
|
135
|
-
getQueryInterface() {
|
|
136
|
-
return {};
|
|
137
|
-
}
|
|
138
|
-
defaultTransactionalDataLoaderMode() {
|
|
139
|
-
return EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED;
|
|
140
|
-
}
|
|
141
|
-
createTransactionRunner(_transactionConfig) {
|
|
142
|
-
return (transactionScope) => Promise.resolve(transactionScope({}));
|
|
143
|
-
}
|
|
144
|
-
createNestedTransactionRunner(_outerQueryInterface) {
|
|
145
|
-
return (transactionScope) => Promise.resolve(transactionScope({}));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
(0, globals_1.it)('respects the global setting but allows overriding by transaction config', async () => {
|
|
149
|
-
const companionProvider = new EntityCompanionProvider_1.EntityCompanionProvider(new NoOpEntityMetricsAdapter_1.NoOpEntityMetricsAdapter(), new Map([
|
|
150
|
-
[
|
|
151
|
-
'postgres',
|
|
152
|
-
{
|
|
153
|
-
adapterProvider: new StubDatabaseAdapterProvider_1.StubDatabaseAdapterProvider(),
|
|
154
|
-
queryContextProvider: new StubQueryContextProviderWithDisabledTransactionalDataLoaders(),
|
|
155
|
-
},
|
|
156
|
-
],
|
|
157
|
-
]), new Map([
|
|
158
|
-
[
|
|
159
|
-
'redis',
|
|
160
|
-
{
|
|
161
|
-
cacheAdapterProvider: new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider(),
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
]));
|
|
165
|
-
const viewerContext = new ViewerContext_1.ViewerContext(companionProvider);
|
|
166
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
167
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
168
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED);
|
|
169
|
-
}, { transactionalDataLoaderMode: EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED });
|
|
170
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
171
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
172
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED_BATCH_ONLY);
|
|
173
|
-
}, { transactionalDataLoaderMode: EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED_BATCH_ONLY });
|
|
174
|
-
await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
|
|
175
|
-
(0, assert_1.default)(queryContext.isInTransaction());
|
|
176
|
-
(0, globals_1.expect)(queryContext.transactionalDataLoaderMode).toBe(EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED);
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
//# sourceMappingURL=EntityQueryContext-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityQueryContext-test.js","sourceRoot":"","sources":["../../../src/__tests__/EntityQueryContext-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const ts_mockito_1 = require("ts-mockito");
|
|
5
|
-
const EntityQueryContext_1 = require("../EntityQueryContext");
|
|
6
|
-
const EntitySecondaryCacheLoader_1 = require("../EntitySecondaryCacheLoader");
|
|
7
|
-
const ViewerContext_1 = require("../ViewerContext");
|
|
8
|
-
const SimpleTestEntity_1 = require("../utils/__testfixtures__/SimpleTestEntity");
|
|
9
|
-
const createUnitTestEntityCompanionProvider_1 = require("../utils/__testfixtures__/createUnitTestEntityCompanionProvider");
|
|
10
|
-
class TestSecondaryRedisCacheLoader extends EntitySecondaryCacheLoader_1.EntitySecondaryCacheLoader {
|
|
11
|
-
async fetchObjectsFromDatabaseAsync(_loadParamsArray) {
|
|
12
|
-
// unused
|
|
13
|
-
return new Map();
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
(0, globals_1.describe)(EntitySecondaryCacheLoader_1.EntitySecondaryCacheLoader, () => {
|
|
17
|
-
(0, globals_1.describe)('loadManyAsync', () => {
|
|
18
|
-
(0, globals_1.it)('calls into secondary cache with correct params', async () => {
|
|
19
|
-
const vc1 = new ViewerContext_1.ViewerContext((0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)());
|
|
20
|
-
const createdEntity = await SimpleTestEntity_1.SimpleTestEntity.creator(vc1).createAsync();
|
|
21
|
-
const loadParams = { id: createdEntity.getID() };
|
|
22
|
-
const secondaryEntityCacheMock = (0, ts_mockito_1.mock)();
|
|
23
|
-
(0, ts_mockito_1.when)(secondaryEntityCacheMock.loadManyThroughAsync((0, ts_mockito_1.deepEqual)([loadParams]), (0, ts_mockito_1.anything)())).thenResolve(new Map());
|
|
24
|
-
const secondaryEntityCache = (0, ts_mockito_1.instance)(secondaryEntityCacheMock);
|
|
25
|
-
const secondaryCacheLoader = new TestSecondaryRedisCacheLoader(secondaryEntityCache, SimpleTestEntity_1.SimpleTestEntity.loaderWithAuthorizationResults(vc1));
|
|
26
|
-
await secondaryCacheLoader.loadManyAsync([loadParams]);
|
|
27
|
-
(0, ts_mockito_1.verify)(secondaryEntityCacheMock.loadManyThroughAsync((0, ts_mockito_1.deepEqual)([loadParams]), (0, ts_mockito_1.anything)())).once();
|
|
28
|
-
});
|
|
29
|
-
(0, globals_1.it)('constructs and authorizes entities', async () => {
|
|
30
|
-
const vc1 = new ViewerContext_1.ViewerContext((0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)());
|
|
31
|
-
const createdEntity = await SimpleTestEntity_1.SimpleTestEntity.creator(vc1).createAsync();
|
|
32
|
-
const loadParams = { id: createdEntity.getID() };
|
|
33
|
-
const secondaryEntityCacheMock = (0, ts_mockito_1.mock)();
|
|
34
|
-
(0, ts_mockito_1.when)(secondaryEntityCacheMock.loadManyThroughAsync((0, ts_mockito_1.deepEqual)([loadParams]), (0, ts_mockito_1.anything)())).thenResolve(new Map([[loadParams, createdEntity.getAllFields()]]));
|
|
35
|
-
const secondaryEntityCache = (0, ts_mockito_1.instance)(secondaryEntityCacheMock);
|
|
36
|
-
const loader = SimpleTestEntity_1.SimpleTestEntity.loaderWithAuthorizationResults(vc1);
|
|
37
|
-
const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(loader.utils['privacyPolicy']);
|
|
38
|
-
const secondaryCacheLoader = new TestSecondaryRedisCacheLoader(secondaryEntityCache, loader);
|
|
39
|
-
const result = await secondaryCacheLoader.loadManyAsync([loadParams]);
|
|
40
|
-
(0, globals_1.expect)(result.get(loadParams)?.enforceValue().getID()).toEqual(createdEntity.getID());
|
|
41
|
-
(0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(vc1, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityNonTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).once();
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
(0, globals_1.describe)('invalidateManyAsync', () => {
|
|
45
|
-
(0, globals_1.it)('calls invalidate on the secondary cache', async () => {
|
|
46
|
-
const vc1 = new ViewerContext_1.ViewerContext((0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)());
|
|
47
|
-
const createdEntity = await SimpleTestEntity_1.SimpleTestEntity.creator(vc1).createAsync();
|
|
48
|
-
const loadParams = { id: createdEntity.getID() };
|
|
49
|
-
const secondaryEntityCacheMock = (0, ts_mockito_1.mock)();
|
|
50
|
-
const secondaryEntityCache = (0, ts_mockito_1.instance)(secondaryEntityCacheMock);
|
|
51
|
-
const loader = SimpleTestEntity_1.SimpleTestEntity.loaderWithAuthorizationResults(vc1);
|
|
52
|
-
const secondaryCacheLoader = new TestSecondaryRedisCacheLoader(secondaryEntityCache, loader);
|
|
53
|
-
await secondaryCacheLoader.invalidateManyAsync([loadParams]);
|
|
54
|
-
(0, ts_mockito_1.verify)(secondaryEntityCacheMock.invalidateManyAsync((0, ts_mockito_1.deepEqual)([loadParams]))).once();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=EntitySecondaryCacheLoader-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySecondaryCacheLoader-test.js","sourceRoot":"","sources":["../../../src/__tests__/EntitySecondaryCacheLoader-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const Entity_1 = require("../Entity");
|
|
5
|
-
const EntityConfiguration_1 = require("../EntityConfiguration");
|
|
6
|
-
const EntityFieldDefinition_1 = require("../EntityFieldDefinition");
|
|
7
|
-
const EntityFields_1 = require("../EntityFields");
|
|
8
|
-
const EntityPrivacyPolicy_1 = require("../EntityPrivacyPolicy");
|
|
9
|
-
const ReadThroughEntityCache_1 = require("../internal/ReadThroughEntityCache");
|
|
10
|
-
const SingleFieldHolder_1 = require("../internal/SingleFieldHolder");
|
|
11
|
-
const AlwaysAllowPrivacyPolicyRule_1 = require("../rules/AlwaysAllowPrivacyPolicyRule");
|
|
12
|
-
const TestViewerContext_1 = require("../utils/__testfixtures__/TestViewerContext");
|
|
13
|
-
const createUnitTestEntityCompanionProvider_1 = require("../utils/__testfixtures__/createUnitTestEntityCompanionProvider");
|
|
14
|
-
class CategoryPrivacyPolicy extends EntityPrivacyPolicy_1.EntityPrivacyPolicy {
|
|
15
|
-
readRules = [
|
|
16
|
-
new AlwaysAllowPrivacyPolicyRule_1.AlwaysAllowPrivacyPolicyRule(),
|
|
17
|
-
];
|
|
18
|
-
createRules = [
|
|
19
|
-
new AlwaysAllowPrivacyPolicyRule_1.AlwaysAllowPrivacyPolicyRule(),
|
|
20
|
-
];
|
|
21
|
-
updateRules = [
|
|
22
|
-
new AlwaysAllowPrivacyPolicyRule_1.AlwaysAllowPrivacyPolicyRule(),
|
|
23
|
-
];
|
|
24
|
-
deleteRules = [
|
|
25
|
-
new AlwaysAllowPrivacyPolicyRule_1.AlwaysAllowPrivacyPolicyRule(),
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
29
|
-
const makeEntityClass = (edgeDeletionBehavior) => {
|
|
30
|
-
class CategoryEntity extends Entity_1.Entity {
|
|
31
|
-
static defineCompanionDefinition() {
|
|
32
|
-
return {
|
|
33
|
-
entityClass: CategoryEntity,
|
|
34
|
-
entityConfiguration: categoryEntityConfiguration,
|
|
35
|
-
privacyPolicyClass: CategoryPrivacyPolicy,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const categoryEntityConfiguration = new EntityConfiguration_1.EntityConfiguration({
|
|
40
|
-
idField: 'id',
|
|
41
|
-
tableName: 'categories',
|
|
42
|
-
inboundEdges: [CategoryEntity],
|
|
43
|
-
schema: {
|
|
44
|
-
id: new EntityFields_1.UUIDField({
|
|
45
|
-
columnName: 'id',
|
|
46
|
-
cache: true,
|
|
47
|
-
}),
|
|
48
|
-
parent_category_id: new EntityFields_1.UUIDField({
|
|
49
|
-
columnName: 'parent_category_id',
|
|
50
|
-
cache: true,
|
|
51
|
-
association: {
|
|
52
|
-
associatedEntityClass: CategoryEntity,
|
|
53
|
-
edgeDeletionBehavior,
|
|
54
|
-
},
|
|
55
|
-
}),
|
|
56
|
-
},
|
|
57
|
-
databaseAdapterFlavor: 'postgres',
|
|
58
|
-
cacheAdapterFlavor: 'redis',
|
|
59
|
-
});
|
|
60
|
-
return {
|
|
61
|
-
CategoryEntity,
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
(0, globals_1.describe)('EntityEdgeDeletionBehavior.CASCADE_DELETE', () => {
|
|
65
|
-
(0, globals_1.it)('deletes', async () => {
|
|
66
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE);
|
|
67
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
68
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
69
|
-
const parentCategory = await CategoryEntity.creator(viewerContext).createAsync();
|
|
70
|
-
const subCategory = await CategoryEntity.creator(viewerContext)
|
|
71
|
-
.setField('parent_category_id', parentCategory.getID())
|
|
72
|
-
.createAsync();
|
|
73
|
-
const subSubCategory = await CategoryEntity.creator(viewerContext)
|
|
74
|
-
.setField('parent_category_id', subCategory.getID())
|
|
75
|
-
.createAsync();
|
|
76
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.not.toBeNull();
|
|
77
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subCategory.getID())).resolves.not.toBeNull();
|
|
78
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subSubCategory.getID())).resolves.not.toBeNull();
|
|
79
|
-
await CategoryEntity.deleter(parentCategory).deleteAsync();
|
|
80
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.toBeNull();
|
|
81
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subCategory.getID())).resolves.toBeNull();
|
|
82
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subSubCategory.getID())).resolves.toBeNull();
|
|
83
|
-
});
|
|
84
|
-
(0, globals_1.it)('handles cycles', async () => {
|
|
85
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE);
|
|
86
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
87
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
88
|
-
const categoryA = await CategoryEntity.creator(viewerContext).createAsync();
|
|
89
|
-
const categoryB = await CategoryEntity.creator(viewerContext)
|
|
90
|
-
.setField('parent_category_id', categoryA.getID())
|
|
91
|
-
.createAsync();
|
|
92
|
-
await CategoryEntity.updater(categoryA)
|
|
93
|
-
.setField('parent_category_id', categoryB.getID())
|
|
94
|
-
.updateAsync();
|
|
95
|
-
await CategoryEntity.deleter(categoryA).deleteAsync();
|
|
96
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(categoryA.getID())).resolves.toBeNull();
|
|
97
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(categoryB.getID())).resolves.toBeNull();
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
(0, globals_1.describe)('EntityEdgeDeletionBehavior.SET_NULL', () => {
|
|
101
|
-
(0, globals_1.it)('sets null', async () => {
|
|
102
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL);
|
|
103
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
104
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
105
|
-
const parentCategory = await CategoryEntity.creator(viewerContext).createAsync();
|
|
106
|
-
const subCategory = await CategoryEntity.creator(viewerContext)
|
|
107
|
-
.setField('parent_category_id', parentCategory.getID())
|
|
108
|
-
.createAsync();
|
|
109
|
-
const subSubCategory = await CategoryEntity.creator(viewerContext)
|
|
110
|
-
.setField('parent_category_id', subCategory.getID())
|
|
111
|
-
.createAsync();
|
|
112
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.not.toBeNull();
|
|
113
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subCategory.getID())).resolves.not.toBeNull();
|
|
114
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subSubCategory.getID())).resolves.not.toBeNull();
|
|
115
|
-
await CategoryEntity.deleter(parentCategory).deleteAsync();
|
|
116
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.toBeNull();
|
|
117
|
-
const loadedSubCategory = await CategoryEntity.loader(viewerContext).loadByIDAsync(subCategory.getID());
|
|
118
|
-
(0, globals_1.expect)(loadedSubCategory.getField('parent_category_id')).toBeNull();
|
|
119
|
-
const loadedSubSubCategory = await CategoryEntity.loader(viewerContext).loadByIDAsync(subSubCategory.getID());
|
|
120
|
-
(0, globals_1.expect)(loadedSubSubCategory.getField('parent_category_id')).not.toBeNull();
|
|
121
|
-
});
|
|
122
|
-
(0, globals_1.it)('handles cycles', async () => {
|
|
123
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL);
|
|
124
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
125
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
126
|
-
const categoryA = await CategoryEntity.creator(viewerContext).createAsync();
|
|
127
|
-
const categoryB = await CategoryEntity.creator(viewerContext)
|
|
128
|
-
.setField('parent_category_id', categoryA.getID())
|
|
129
|
-
.createAsync();
|
|
130
|
-
await CategoryEntity.updater(categoryA)
|
|
131
|
-
.setField('parent_category_id', categoryB.getID())
|
|
132
|
-
.updateAsync();
|
|
133
|
-
await CategoryEntity.deleter(categoryA).deleteAsync();
|
|
134
|
-
const loadedCategoryB = await CategoryEntity.loader(viewerContext).loadByIDAsync(categoryB.getID());
|
|
135
|
-
(0, globals_1.expect)(loadedCategoryB.getField('parent_category_id')).toBeNull();
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
(0, globals_1.describe)('EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE', () => {
|
|
139
|
-
(0, globals_1.it)('invalidates the cache', async () => {
|
|
140
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE_ONLY);
|
|
141
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
142
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
143
|
-
const parentCategory = await CategoryEntity.creator(viewerContext).createAsync();
|
|
144
|
-
const subCategory = await CategoryEntity.creator(viewerContext)
|
|
145
|
-
.setField('parent_category_id', parentCategory.getID())
|
|
146
|
-
.createAsync();
|
|
147
|
-
const subSubCategory = await CategoryEntity.creator(viewerContext)
|
|
148
|
-
.setField('parent_category_id', subCategory.getID())
|
|
149
|
-
.createAsync();
|
|
150
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.not.toBeNull();
|
|
151
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_category_id', parentCategory.getID())).resolves.not.toBeNull();
|
|
152
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_category_id', subCategory.getID())).resolves.not.toBeNull();
|
|
153
|
-
const categoryCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(CategoryEntity)['entityCompanion']['tableDataCoordinator']['cacheAdapter'];
|
|
154
|
-
const subCategoryCachedBefore = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [new SingleFieldHolder_1.SingleFieldValueHolder(parentCategory.getID())]);
|
|
155
|
-
(0, globals_1.expect)(subCategoryCachedBefore.get(new SingleFieldHolder_1.SingleFieldValueHolder(parentCategory.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.HIT);
|
|
156
|
-
const subSubCategoryCachedBefore = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [new SingleFieldHolder_1.SingleFieldValueHolder(subCategory.getID())]);
|
|
157
|
-
(0, globals_1.expect)(subSubCategoryCachedBefore.get(new SingleFieldHolder_1.SingleFieldValueHolder(subCategory.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.HIT);
|
|
158
|
-
await CategoryEntity.deleter(parentCategory).deleteAsync();
|
|
159
|
-
const subCategoryCachedAfter = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [new SingleFieldHolder_1.SingleFieldValueHolder(parentCategory.getID())]);
|
|
160
|
-
(0, globals_1.expect)(subCategoryCachedAfter.get(new SingleFieldHolder_1.SingleFieldValueHolder(parentCategory.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.MISS);
|
|
161
|
-
const subSubCategoryCachedAfter = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [new SingleFieldHolder_1.SingleFieldValueHolder(subCategory.getID())]);
|
|
162
|
-
(0, globals_1.expect)(subSubCategoryCachedAfter.get(new SingleFieldHolder_1.SingleFieldValueHolder(subCategory.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.MISS);
|
|
163
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID())).resolves.toBeNull();
|
|
164
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subCategory.getID())).resolves.not.toBeNull();
|
|
165
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByIDNullableAsync(subSubCategory.getID())).resolves.not.toBeNull();
|
|
166
|
-
});
|
|
167
|
-
(0, globals_1.it)('handles cycles', async () => {
|
|
168
|
-
const { CategoryEntity } = makeEntityClass(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE_ONLY);
|
|
169
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
170
|
-
const viewerContext = new TestViewerContext_1.TestViewerContext(companionProvider);
|
|
171
|
-
const categoryA = await CategoryEntity.creator(viewerContext).createAsync();
|
|
172
|
-
const categoryB = await CategoryEntity.creator(viewerContext)
|
|
173
|
-
.setField('parent_category_id', categoryA.getID())
|
|
174
|
-
.createAsync();
|
|
175
|
-
await CategoryEntity.updater(categoryA)
|
|
176
|
-
.setField('parent_category_id', categoryB.getID())
|
|
177
|
-
.updateAsync();
|
|
178
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_category_id', categoryA.getID())).resolves.not.toBeNull();
|
|
179
|
-
await (0, globals_1.expect)(CategoryEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_category_id', categoryB.getID())).resolves.not.toBeNull();
|
|
180
|
-
const categoryCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(CategoryEntity)['entityCompanion']['tableDataCoordinator']['cacheAdapter'];
|
|
181
|
-
const categoriesCachedBefore = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [
|
|
182
|
-
new SingleFieldHolder_1.SingleFieldValueHolder(categoryA.getID()),
|
|
183
|
-
new SingleFieldHolder_1.SingleFieldValueHolder(categoryB.getID()),
|
|
184
|
-
]);
|
|
185
|
-
(0, globals_1.expect)(categoriesCachedBefore.get(new SingleFieldHolder_1.SingleFieldValueHolder(categoryA.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.HIT);
|
|
186
|
-
(0, globals_1.expect)(categoriesCachedBefore.get(new SingleFieldHolder_1.SingleFieldValueHolder(categoryB.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.HIT);
|
|
187
|
-
await CategoryEntity.deleter(categoryA).deleteAsync();
|
|
188
|
-
const categoriesCachedAfter = await categoryCacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('parent_category_id'), [
|
|
189
|
-
new SingleFieldHolder_1.SingleFieldValueHolder(categoryA.getID()),
|
|
190
|
-
new SingleFieldHolder_1.SingleFieldValueHolder(categoryB.getID()),
|
|
191
|
-
]);
|
|
192
|
-
(0, globals_1.expect)(categoriesCachedAfter.get(new SingleFieldHolder_1.SingleFieldValueHolder(categoryA.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.MISS);
|
|
193
|
-
(0, globals_1.expect)(categoriesCachedAfter.get(new SingleFieldHolder_1.SingleFieldValueHolder(categoryB.getID()))?.status).toEqual(ReadThroughEntityCache_1.CacheStatus.MISS);
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
//# sourceMappingURL=EntitySelfReferentialEdges-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySelfReferentialEdges-test.js","sourceRoot":"","sources":["../../../src/__tests__/EntitySelfReferentialEdges-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const ts_mockito_1 = require("ts-mockito");
|
|
5
|
-
const GenericEntityCacheAdapter_1 = require("../GenericEntityCacheAdapter");
|
|
6
|
-
const ReadThroughEntityCache_1 = require("../internal/ReadThroughEntityCache");
|
|
7
|
-
const SingleFieldHolder_1 = require("../internal/SingleFieldHolder");
|
|
8
|
-
const TSMockitoExtensions_1 = require("../utils/__testfixtures__/TSMockitoExtensions");
|
|
9
|
-
(0, globals_1.describe)(GenericEntityCacheAdapter_1.GenericEntityCacheAdapter, () => {
|
|
10
|
-
(0, globals_1.describe)('loadManyAsync', () => {
|
|
11
|
-
(0, globals_1.it)('returns appropriate cache results', async () => {
|
|
12
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
13
|
-
(0, ts_mockito_1.when)(mockGenericCacher.makeCacheKeyForStorage((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, ts_mockito_1.anything)())).thenCall((fieldHolder, fieldValueHolder) => {
|
|
14
|
-
return `${fieldHolder.fieldName}.${fieldValueHolder.fieldValue}`;
|
|
15
|
-
});
|
|
16
|
-
(0, ts_mockito_1.when)(mockGenericCacher.loadManyAsync((0, ts_mockito_1.deepEqual)(['id.wat', 'id.who', 'id.why']))).thenResolve(new Map([
|
|
17
|
-
['id.wat', { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'wat' } }],
|
|
18
|
-
['id.who', { status: ReadThroughEntityCache_1.CacheStatus.NEGATIVE }],
|
|
19
|
-
['id.why', { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
|
|
20
|
-
]));
|
|
21
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
22
|
-
const results = await cacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
|
|
23
|
-
new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
|
|
24
|
-
new SingleFieldHolder_1.SingleFieldValueHolder('who'),
|
|
25
|
-
new SingleFieldHolder_1.SingleFieldValueHolder('why'),
|
|
26
|
-
]);
|
|
27
|
-
(0, globals_1.expect)(results.get(new SingleFieldHolder_1.SingleFieldValueHolder('wat'))).toMatchObject({
|
|
28
|
-
status: ReadThroughEntityCache_1.CacheStatus.HIT,
|
|
29
|
-
item: { id: 'wat' },
|
|
30
|
-
});
|
|
31
|
-
(0, globals_1.expect)(results.get(new SingleFieldHolder_1.SingleFieldValueHolder('who'))).toMatchObject({
|
|
32
|
-
status: ReadThroughEntityCache_1.CacheStatus.NEGATIVE,
|
|
33
|
-
});
|
|
34
|
-
(0, globals_1.expect)(results.get(new SingleFieldHolder_1.SingleFieldValueHolder('why'))).toMatchObject({
|
|
35
|
-
status: ReadThroughEntityCache_1.CacheStatus.MISS,
|
|
36
|
-
});
|
|
37
|
-
(0, globals_1.expect)(results.size).toBe(3);
|
|
38
|
-
(0, ts_mockito_1.verify)(mockGenericCacher.loadManyAsync((0, ts_mockito_1.anything)())).once();
|
|
39
|
-
});
|
|
40
|
-
(0, globals_1.it)('returns empty map when passed empty array of load values', async () => {
|
|
41
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
42
|
-
(0, ts_mockito_1.when)(mockGenericCacher.loadManyAsync((0, ts_mockito_1.deepEqual)([]))).thenResolve(new Map([]));
|
|
43
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
44
|
-
const results = await cacheAdapter.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), []);
|
|
45
|
-
(0, globals_1.expect)(results).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map()));
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
(0, globals_1.describe)('cacheManyAsync', () => {
|
|
49
|
-
(0, globals_1.it)('correctly caches all objects', async () => {
|
|
50
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
51
|
-
(0, ts_mockito_1.when)(mockGenericCacher.makeCacheKeyForStorage((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, ts_mockito_1.anything)())).thenCall((fieldHolder, fieldValueHolder) => {
|
|
52
|
-
return `${fieldHolder.fieldName}.${fieldValueHolder.fieldValue}`;
|
|
53
|
-
});
|
|
54
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
55
|
-
await cacheAdapter.cacheManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), new Map([[new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { id: 'wat' }]]));
|
|
56
|
-
(0, ts_mockito_1.verify)(mockGenericCacher.cacheManyAsync((0, ts_mockito_1.deepEqual)(new Map([['id.wat', { id: 'wat' }]])))).once();
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
(0, globals_1.describe)('cacheDBMissesAsync', () => {
|
|
60
|
-
(0, globals_1.it)('correctly caches misses', async () => {
|
|
61
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
62
|
-
(0, ts_mockito_1.when)(mockGenericCacher.makeCacheKeyForStorage((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, ts_mockito_1.anything)())).thenCall((fieldHolder, fieldValueHolder) => {
|
|
63
|
-
return `${fieldHolder.fieldName}.${fieldValueHolder.fieldValue}`;
|
|
64
|
-
});
|
|
65
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
66
|
-
await cacheAdapter.cacheDBMissesAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
|
|
67
|
-
new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
|
|
68
|
-
]);
|
|
69
|
-
(0, ts_mockito_1.verify)(mockGenericCacher.cacheDBMissesAsync((0, ts_mockito_1.deepEqual)(['id.wat']))).once();
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
(0, globals_1.describe)('invalidateManyAsync', () => {
|
|
73
|
-
(0, globals_1.it)('invalidates correctly', async () => {
|
|
74
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
75
|
-
(0, ts_mockito_1.when)(mockGenericCacher.makeCacheKeysForInvalidation((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, ts_mockito_1.anything)())).thenCall((fieldHolder, fieldValueHolder) => {
|
|
76
|
-
return `${fieldHolder.fieldName}.${fieldValueHolder.fieldValue}`;
|
|
77
|
-
});
|
|
78
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
79
|
-
await cacheAdapter.invalidateManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
|
|
80
|
-
new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
|
|
81
|
-
]);
|
|
82
|
-
(0, ts_mockito_1.verify)(mockGenericCacher.invalidateManyAsync((0, ts_mockito_1.deepEqual)(['id.wat']))).once();
|
|
83
|
-
});
|
|
84
|
-
(0, globals_1.it)('returns when passed empty array of fieldValues', async () => {
|
|
85
|
-
const mockGenericCacher = (0, ts_mockito_1.mock)();
|
|
86
|
-
(0, ts_mockito_1.when)(mockGenericCacher.makeCacheKeysForInvalidation((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, ts_mockito_1.anything)())).thenCall((fieldHolder, fieldValueHolder) => {
|
|
87
|
-
return `${fieldHolder.fieldName}.${fieldValueHolder.fieldValue}`;
|
|
88
|
-
});
|
|
89
|
-
const cacheAdapter = new GenericEntityCacheAdapter_1.GenericEntityCacheAdapter((0, ts_mockito_1.instance)(mockGenericCacher));
|
|
90
|
-
await cacheAdapter.invalidateManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), []);
|
|
91
|
-
(0, ts_mockito_1.verify)(mockGenericCacher.invalidateManyAsync((0, ts_mockito_1.deepEqual)([]))).once();
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
//# sourceMappingURL=GenericEntityCacheAdapter-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericEntityCacheAdapter-test.js","sourceRoot":"","sources":["../../../src/__tests__/GenericEntityCacheAdapter-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|