@expo/entity 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +99 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js +124 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
- package/build/AuthorizationResultBasedEntityLoader.d.ts +1 -1
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/{EntityMutator.d.ts → AuthorizationResultBasedEntityMutator.d.ts} +5 -17
- package/build/{EntityMutator.js → AuthorizationResultBasedEntityMutator.js} +22 -48
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -0
- package/build/EnforcingEntityAssociationLoader.d.ts +79 -0
- package/build/EnforcingEntityAssociationLoader.js +62 -0
- package/build/EnforcingEntityAssociationLoader.js.map +1 -0
- package/build/EnforcingEntityCreator.d.ts +24 -0
- package/build/EnforcingEntityCreator.js +32 -0
- package/build/EnforcingEntityCreator.js.map +1 -0
- package/build/EnforcingEntityDeleter.d.ts +17 -0
- package/build/EnforcingEntityDeleter.js +22 -0
- package/build/EnforcingEntityDeleter.js.map +1 -0
- package/build/EnforcingEntityUpdater.d.ts +24 -0
- package/build/EnforcingEntityUpdater.js +32 -0
- package/build/EnforcingEntityUpdater.js.map +1 -0
- package/build/Entity.d.ts +8 -12
- package/build/Entity.js +9 -34
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.d.ts +12 -91
- package/build/EntityAssociationLoader.js +20 -126
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCompanionProvider.d.ts +2 -2
- package/build/EntityCompanionProvider.js.map +1 -1
- package/build/EntityCreator.d.ts +27 -0
- package/build/EntityCreator.js +39 -0
- package/build/EntityCreator.js.map +1 -0
- package/build/EntityDatabaseAdapter.js +2 -2
- package/build/EntityDatabaseAdapter.js.map +1 -1
- package/build/EntityDeleter.d.ts +27 -0
- package/build/EntityDeleter.js +40 -0
- package/build/EntityDeleter.js.map +1 -0
- package/build/EntityLoader.d.ts +4 -14
- package/build/EntityLoader.js +7 -20
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +2 -2
- package/build/EntityLoaderFactory.js +4 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutatorFactory.d.ts +4 -4
- package/build/EntityMutatorFactory.js +4 -4
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.d.ts +3 -3
- package/build/EntitySecondaryCacheLoader.js +1 -3
- package/build/EntitySecondaryCacheLoader.js.map +1 -1
- package/build/EntityUpdater.d.ts +27 -0
- package/build/EntityUpdater.js +40 -0
- package/build/EntityUpdater.js.map +1 -0
- package/build/ReadonlyEntity.d.ts +2 -2
- package/build/ReadonlyEntity.js +4 -6
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
- package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
- package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
- package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +273 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/{EntityLoader-constructor-test.js → AuthorizationResultBasedEntityLoader-constructor-test.js} +11 -11
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +401 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js +115 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/Entity-test.js +23 -5
- package/build/__tests__/Entity-test.js.map +1 -1
- package/build/__tests__/EntityAssociationLoader-test.js +14 -184
- package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js +34 -12
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityCompanion-test.js +17 -7
- package/build/__tests__/EntityCompanion-test.js.map +1 -1
- package/build/__tests__/EntityDatabaseAdapter-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +41 -23
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityLoader-test.js +22 -386
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +4 -3
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
- package/build/__tests__/EntityMutator-test.js +67 -70
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +17 -7
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +7 -7
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +36 -24
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
- package/build/__tests__/ReadonlyEntity-test.js +1 -1
- package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +4 -2
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +7 -4
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
- package/build/__tests__/entityUtils-test.js +8 -0
- package/build/__tests__/entityUtils-test.js.map +1 -1
- package/build/entityUtils.d.ts +7 -0
- package/build/entityUtils.js +20 -10
- package/build/entityUtils.js.map +1 -1
- package/build/errors/EntityCacheAdapterError.js +17 -7
- package/build/errors/EntityCacheAdapterError.js.map +1 -1
- package/build/errors/EntityDatabaseAdapterError.js +17 -7
- package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
- package/build/errors/EntityInvalidFieldValueError.js +17 -7
- package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
- package/build/errors/EntityNotAuthorizedError.js +17 -7
- package/build/errors/EntityNotAuthorizedError.js.map +1 -1
- package/build/errors/EntityNotFoundError.js +17 -7
- package/build/errors/EntityNotFoundError.js.map +1 -1
- package/build/index.d.ts +19 -11
- package/build/index.js +24 -7
- package/build/index.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/__tests__/EntityDataManager-test.js +42 -32
- package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +17 -7
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/utils/EntityPrivacyUtils.d.ts +32 -4
- package/build/utils/EntityPrivacyUtils.js +68 -24
- package/build/utils/EntityPrivacyUtils.js.map +1 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.js +148 -23
- package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +1 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +8 -5
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +1 -1
- package/build/utils/collections/__tests__/maps-test.js +1 -1
- package/build/utils/collections/__tests__/maps-test.js.map +1 -1
- package/build/utils/collections/maps.js +2 -2
- package/build/utils/collections/maps.js.map +1 -1
- package/build/utils/mergeEntityMutationTriggerConfigurations.js +1 -2
- package/build/utils/mergeEntityMutationTriggerConfigurations.js.map +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
- package/build/utils/testing/StubDatabaseAdapter.js +17 -7
- package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
- package/build/utils/testing/StubQueryContextProvider.d.ts +1 -3
- package/build/utils/testing/StubQueryContextProvider.js +1 -3
- package/build/utils/testing/StubQueryContextProvider.js.map +1 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js +2 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +1 -1
- package/build/utils/testing/describeFieldTestCase.js +1 -1
- package/build/utils/testing/describeFieldTestCase.js.map +1 -1
- package/package.json +19 -3
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +492 -0
- package/src/AuthorizationResultBasedEntityLoader.ts +2 -2
- package/src/{EntityMutator.ts → AuthorizationResultBasedEntityMutator.ts} +62 -58
- package/src/EnforcingEntityAssociationLoader.ts +390 -0
- package/src/EnforcingEntityCreator.ts +55 -0
- package/src/EnforcingEntityDeleter.ts +44 -0
- package/src/EnforcingEntityUpdater.ts +55 -0
- package/src/Entity.ts +20 -65
- package/src/EntityAssociationLoader.ts +38 -495
- package/src/EntityCompanionProvider.ts +5 -2
- package/src/EntityCreator.ts +73 -0
- package/src/EntityDeleter.ts +73 -0
- package/src/EntityLoader.ts +10 -49
- package/src/EntityLoaderFactory.ts +20 -3
- package/src/EntityMutatorFactory.ts +32 -7
- package/src/EntitySecondaryCacheLoader.ts +5 -7
- package/src/EntityUpdater.ts +73 -0
- package/src/ReadonlyEntity.ts +14 -13
- package/src/ViewerScopedEntityLoaderFactory.ts +9 -2
- package/src/ViewerScopedEntityMutatorFactory.ts +29 -4
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +354 -0
- package/src/__tests__/{EntityLoader-constructor-test.ts → AuthorizationResultBasedEntityLoader-constructor-test.ts} +17 -10
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +730 -0
- package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +253 -0
- package/src/__tests__/Entity-test.ts +24 -5
- package/src/__tests__/EntityAssociationLoader-test.ts +16 -259
- package/src/__tests__/EntityCommonUseCases-test.ts +20 -8
- package/src/__tests__/EntityCompanion-test.ts +1 -1
- package/src/__tests__/EntityDatabaseAdapter-test.ts +6 -6
- package/src/__tests__/EntityEdges-test.ts +24 -16
- package/src/__tests__/EntityLoader-test.ts +25 -675
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +4 -3
- package/src/__tests__/EntityMutator-test.ts +116 -103
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -7
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +36 -24
- package/src/__tests__/ReadonlyEntity-test.ts +1 -1
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +4 -2
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +7 -4
- package/src/__tests__/entityUtils-test.ts +12 -0
- package/src/entityUtils.ts +24 -9
- package/src/index.ts +19 -11
- package/src/internal/EntityFieldTransformationUtils.ts +2 -2
- package/src/internal/__tests__/EntityDataManager-test.ts +29 -29
- package/src/utils/EntityPrivacyUtils.ts +188 -107
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +169 -29
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +8 -5
- package/src/utils/collections/__tests__/maps-test.ts +1 -1
- package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +1 -1
- package/src/utils/testing/StubDatabaseAdapter.ts +1 -1
- package/src/utils/testing/StubQueryContextProvider.ts +1 -3
- package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +3 -1
- package/build/EntityMutator.js.map +0 -1
- package/build/__tests__/EntityLoader-constructor-test.js.map +0 -1
- /package/build/__tests__/{EntityLoader-constructor-test.d.ts → AuthorizationResultBasedEntityLoader-constructor-test.d.ts} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
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 results_1 = require("@expo/results");
|
|
7
|
+
const ts_mockito_1 = require("ts-mockito");
|
|
8
|
+
const AuthorizationResultBasedEntityAssociationLoader_1 = __importDefault(require("../AuthorizationResultBasedEntityAssociationLoader"));
|
|
9
|
+
const EnforcingEntityAssociationLoader_1 = __importDefault(require("../EnforcingEntityAssociationLoader"));
|
|
10
|
+
describe(EnforcingEntityAssociationLoader_1.default, () => {
|
|
11
|
+
describe('loadAssociatedEntityAsync', () => {
|
|
12
|
+
it('throws when result is unsuccessful', async () => {
|
|
13
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
14
|
+
const rejection = new Error();
|
|
15
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(rejection));
|
|
16
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
17
|
+
const enforcingEntityAssociationLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
18
|
+
await expect(enforcingEntityAssociationLoader.loadAssociatedEntityAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).rejects.toThrow(rejection);
|
|
19
|
+
});
|
|
20
|
+
it('returns value when result is successful', async () => {
|
|
21
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
22
|
+
const resolved = {};
|
|
23
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(resolved));
|
|
24
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
25
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
26
|
+
await expect(enforcingEntityLoader.loadAssociatedEntityAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).resolves.toEqual(resolved);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('loadManyAssociatedEntitiesAsync', () => {
|
|
30
|
+
it('throws when result is unsuccessful', async () => {
|
|
31
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
32
|
+
const rejection = new Error();
|
|
33
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadManyAssociatedEntitiesAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve([(0, results_1.result)(rejection)]);
|
|
34
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
35
|
+
const enforcingEntityAssociationLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
36
|
+
await expect(enforcingEntityAssociationLoader.loadManyAssociatedEntitiesAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).rejects.toThrow(rejection);
|
|
37
|
+
});
|
|
38
|
+
it('returns value when result is successful', async () => {
|
|
39
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
40
|
+
const resolved = [];
|
|
41
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadManyAssociatedEntitiesAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve([(0, results_1.result)(resolved)]);
|
|
42
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
43
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
44
|
+
await expect(enforcingEntityLoader.loadManyAssociatedEntitiesAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).resolves.toEqual([resolved]);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('loadAssociatedEntityByFieldEqualingAsync', () => {
|
|
48
|
+
it('throws when result is unsuccessful', async () => {
|
|
49
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
50
|
+
const rejection = new Error();
|
|
51
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(rejection));
|
|
52
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
53
|
+
const enforcingEntityAssociationLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
54
|
+
await expect(enforcingEntityAssociationLoader.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).rejects.toThrow(rejection);
|
|
55
|
+
});
|
|
56
|
+
it('returns value when result is successful', async () => {
|
|
57
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
58
|
+
const resolved = {};
|
|
59
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(resolved));
|
|
60
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
61
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
62
|
+
await expect(enforcingEntityLoader.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).resolves.toEqual(resolved);
|
|
63
|
+
});
|
|
64
|
+
it('returns null when result is successful but null', async () => {
|
|
65
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
66
|
+
const resolved = null;
|
|
67
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve(resolved);
|
|
68
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
69
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
70
|
+
await expect(enforcingEntityLoader.loadAssociatedEntityByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).resolves.toEqual(resolved);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('loadManyAssociatedEntitiesByFieldEqualingAsync', () => {
|
|
74
|
+
it('throws when result is unsuccessful', async () => {
|
|
75
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
76
|
+
const rejection = new Error();
|
|
77
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadManyAssociatedEntitiesByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve([(0, results_1.result)(rejection)]);
|
|
78
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
79
|
+
const enforcingEntityAssociationLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
80
|
+
await expect(enforcingEntityAssociationLoader.loadManyAssociatedEntitiesByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).rejects.toThrow(rejection);
|
|
81
|
+
});
|
|
82
|
+
it('returns value when result is successful', async () => {
|
|
83
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
84
|
+
const resolved = [];
|
|
85
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadManyAssociatedEntitiesByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve([(0, results_1.result)(resolved)]);
|
|
86
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
87
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
88
|
+
await expect(enforcingEntityLoader.loadManyAssociatedEntitiesByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).resolves.toEqual([resolved]);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('loadAssociatedEntityThroughAsync', () => {
|
|
92
|
+
it('throws when result is unsuccessful', async () => {
|
|
93
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
94
|
+
const rejection = new Error();
|
|
95
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityThroughAsync((0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(rejection));
|
|
96
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
97
|
+
const enforcingEntityAssociationLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
98
|
+
await expect(enforcingEntityAssociationLoader.loadAssociatedEntityThroughAsync((0, ts_mockito_1.anything)())).rejects.toThrow(rejection);
|
|
99
|
+
});
|
|
100
|
+
it('returns value when result is successful', async () => {
|
|
101
|
+
const nonEnforcingEntityAssociationLoaderMock = (0, ts_mockito_1.mock)();
|
|
102
|
+
const resolved = {};
|
|
103
|
+
(0, ts_mockito_1.when)(nonEnforcingEntityAssociationLoaderMock.loadAssociatedEntityThroughAsync((0, ts_mockito_1.anything)())).thenResolve((0, results_1.result)(resolved));
|
|
104
|
+
const nonEnforcingEntityAssociationLoader = (0, ts_mockito_1.instance)(nonEnforcingEntityAssociationLoaderMock);
|
|
105
|
+
const enforcingEntityLoader = new EnforcingEntityAssociationLoader_1.default(nonEnforcingEntityAssociationLoader);
|
|
106
|
+
await expect(enforcingEntityLoader.loadAssociatedEntityThroughAsync((0, ts_mockito_1.anything)())).resolves.toEqual(resolved);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
it('has the same method names as AuthorizationResultBasedEntityAssociationLoader', () => {
|
|
110
|
+
const enforcingLoaderProperties = Object.getOwnPropertyNames(EnforcingEntityAssociationLoader_1.default.prototype);
|
|
111
|
+
const nonEnforcingLoaderProperties = Object.getOwnPropertyNames(AuthorizationResultBasedEntityAssociationLoader_1.default.prototype);
|
|
112
|
+
expect(enforcingLoaderProperties).toEqual(nonEnforcingLoaderProperties);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=EnforcingEntityAssociationLoader-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnforcingEntityAssociationLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EnforcingEntityAssociationLoader-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const Entity_1 = __importDefault(require("../Entity"));
|
|
7
|
-
const
|
|
7
|
+
const EntityCreator_1 = __importDefault(require("../EntityCreator"));
|
|
8
|
+
const EntityDeleter_1 = __importDefault(require("../EntityDeleter"));
|
|
9
|
+
const EntityUpdater_1 = __importDefault(require("../EntityUpdater"));
|
|
8
10
|
const ViewerContext_1 = __importDefault(require("../ViewerContext"));
|
|
9
11
|
const SimpleTestEntity_1 = __importDefault(require("../testfixtures/SimpleTestEntity"));
|
|
10
12
|
const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
|
|
11
13
|
describe(Entity_1.default, () => {
|
|
12
14
|
describe('creator', () => {
|
|
13
|
-
it('creates a new
|
|
15
|
+
it('creates a new EntityCreator', () => {
|
|
14
16
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
15
17
|
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
16
|
-
expect(SimpleTestEntity_1.default.creator(viewerContext)).toBeInstanceOf(
|
|
18
|
+
expect(SimpleTestEntity_1.default.creator(viewerContext)).toBeInstanceOf(EntityCreator_1.default);
|
|
17
19
|
});
|
|
18
20
|
});
|
|
19
21
|
describe('updater', () => {
|
|
20
|
-
it('creates a new
|
|
22
|
+
it('creates a new EntityUpdater', () => {
|
|
21
23
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
22
24
|
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
23
25
|
const data = {
|
|
@@ -29,7 +31,23 @@ describe(Entity_1.default, () => {
|
|
|
29
31
|
databaseFields: data,
|
|
30
32
|
selectedFields: data,
|
|
31
33
|
});
|
|
32
|
-
expect(SimpleTestEntity_1.default.updater(testEntity)).toBeInstanceOf(
|
|
34
|
+
expect(SimpleTestEntity_1.default.updater(testEntity)).toBeInstanceOf(EntityUpdater_1.default);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('deleter', () => {
|
|
38
|
+
it('creates a new EntityDeleter', () => {
|
|
39
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
40
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
41
|
+
const data = {
|
|
42
|
+
id: 'what',
|
|
43
|
+
};
|
|
44
|
+
const testEntity = new SimpleTestEntity_1.default({
|
|
45
|
+
viewerContext,
|
|
46
|
+
id: 'what',
|
|
47
|
+
databaseFields: data,
|
|
48
|
+
selectedFields: data,
|
|
49
|
+
});
|
|
50
|
+
expect(SimpleTestEntity_1.default.deleter(testEntity)).toBeInstanceOf(EntityDeleter_1.default);
|
|
33
51
|
});
|
|
34
52
|
});
|
|
35
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity-test.js","sourceRoot":"","sources":["../../src/__tests__/Entity-test.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"Entity-test.js","sourceRoot":"","sources":["../../src/__tests__/Entity-test.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,qEAA6C;AAC7C,qEAA6C;AAC7C,qEAA6C;AAC7C,qEAA6C;AAC7C,wFAAgE;AAChE,kHAA+G;AAE/G,QAAQ,CAAC,gBAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,CAAC,0BAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,uBAAa,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,MAAM;aACX,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,0BAAgB,CAAC;gBACtC,aAAa;gBACb,EAAE,EAAE,MAAM;gBACV,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,MAAM,CAAC,0BAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,uBAAa,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,MAAM;aACX,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,0BAAgB,CAAC;gBACtC,aAAa;gBACb,EAAE,EAAE,MAAM;gBACV,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,MAAM,CAAC,0BAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,uBAAa,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -3,197 +3,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const AuthorizationResultBasedEntityAssociationLoader_1 = __importDefault(require("../AuthorizationResultBasedEntityAssociationLoader"));
|
|
7
|
+
const EnforcingEntityAssociationLoader_1 = __importDefault(require("../EnforcingEntityAssociationLoader"));
|
|
8
8
|
const EntityAssociationLoader_1 = __importDefault(require("../EntityAssociationLoader"));
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const TestEntity2_1 = __importDefault(require("../testfixtures/TestEntity2"));
|
|
12
|
-
const TestViewerContext_1 = __importDefault(require("../testfixtures/TestViewerContext"));
|
|
9
|
+
const ViewerContext_1 = __importDefault(require("../ViewerContext"));
|
|
10
|
+
const SimpleTestEntity_1 = __importDefault(require("../testfixtures/SimpleTestEntity"));
|
|
13
11
|
const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
|
|
14
12
|
describe(EntityAssociationLoader_1.default, () => {
|
|
15
|
-
describe('
|
|
16
|
-
it('
|
|
13
|
+
describe('enforcing', () => {
|
|
14
|
+
it('creates a new EnforcingEntityLoader', async () => {
|
|
17
15
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
18
|
-
const viewerContext = new
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
.setField('stringField', testOtherEntity.getID())
|
|
22
|
-
.createAsync());
|
|
23
|
-
const loadedOther = await (0, results_1.enforceAsyncResult)(testEntity.associationLoader().loadAssociatedEntityAsync('stringField', TestEntity_1.default));
|
|
24
|
-
expect(loadedOther.getID()).toEqual(testOtherEntity.getID());
|
|
25
|
-
const loadedOther2 = await (0, results_1.enforceAsyncResult)(testEntity.associationLoader().loadAssociatedEntityAsync('nullableField', TestEntity_1.default));
|
|
26
|
-
expect(loadedOther2).toBeNull();
|
|
16
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
17
|
+
const testEntity = await SimpleTestEntity_1.default.creator(viewerContext).enforcing().createAsync();
|
|
18
|
+
expect(testEntity.associationLoader().enforcing()).toBeInstanceOf(EnforcingEntityAssociationLoader_1.default);
|
|
27
19
|
});
|
|
28
20
|
});
|
|
29
|
-
describe('
|
|
30
|
-
it('
|
|
21
|
+
describe('withAuthorizationResults', () => {
|
|
22
|
+
it('creates a new AuthorizationResultBasedEntityAssociationLoader', async () => {
|
|
31
23
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
32
|
-
const viewerContext = new
|
|
33
|
-
const testEntity = await
|
|
34
|
-
|
|
35
|
-
const testOtherEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', testEntity.getID()).createAsync());
|
|
36
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity.associationLoader().loadManyAssociatedEntitiesAsync(TestEntity_1.default, 'stringField'));
|
|
37
|
-
expect(loaded).toHaveLength(2);
|
|
38
|
-
expect(loaded.find((e) => e.getID() === testOtherEntity1.getID())).not.toBeUndefined();
|
|
39
|
-
expect(loaded.find((e) => e.getID() === testOtherEntity2.getID())).not.toBeUndefined();
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe('loadAssociatedEntityByFieldEqualingAsync', () => {
|
|
43
|
-
it('loads associated entity by field equaling', async () => {
|
|
44
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
45
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
46
|
-
const testOtherEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).createAsync());
|
|
47
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext)
|
|
48
|
-
.setField('stringField', testOtherEntity.getID())
|
|
49
|
-
.createAsync());
|
|
50
|
-
const loadedOtherResult = await testEntity
|
|
51
|
-
.associationLoader()
|
|
52
|
-
.loadAssociatedEntityByFieldEqualingAsync('stringField', TestEntity_1.default, 'customIdField');
|
|
53
|
-
expect(loadedOtherResult?.enforceValue().getID()).toEqual(testOtherEntity.getID());
|
|
54
|
-
});
|
|
55
|
-
it('returns null when loading associated entities by field equaling a non existent association', async () => {
|
|
56
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
57
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
58
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', (0, uuid_1.v4)()).createAsync());
|
|
59
|
-
const loadedOtherResult = await testEntity
|
|
60
|
-
.associationLoader()
|
|
61
|
-
.loadAssociatedEntityByFieldEqualingAsync('stringField', TestEntity_1.default, 'customIdField');
|
|
62
|
-
expect(loadedOtherResult).toBeNull();
|
|
63
|
-
});
|
|
64
|
-
it('returns null when load-by field is null', async () => {
|
|
65
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
66
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
67
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', 'blah').createAsync());
|
|
68
|
-
const loadedOtherResult = await testEntity
|
|
69
|
-
.associationLoader()
|
|
70
|
-
.loadAssociatedEntityByFieldEqualingAsync('nullableField', TestEntity_1.default, 'customIdField');
|
|
71
|
-
expect(loadedOtherResult).toBeNull();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
describe('loadManyAssociatedEntitiesByFieldEqualingAsync', () => {
|
|
75
|
-
it('loads many associated entities by field equaling', async () => {
|
|
76
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
77
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
78
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).createAsync());
|
|
79
|
-
const testOtherEntity1 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', testEntity.getID()).createAsync());
|
|
80
|
-
const testOtherEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', testEntity.getID()).createAsync());
|
|
81
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity
|
|
82
|
-
.associationLoader()
|
|
83
|
-
.loadManyAssociatedEntitiesByFieldEqualingAsync('customIdField', TestEntity_1.default, 'stringField'));
|
|
84
|
-
expect(loaded).toHaveLength(2);
|
|
85
|
-
expect(loaded.find((e) => e.getID() === testOtherEntity1.getID())).not.toBeUndefined();
|
|
86
|
-
expect(loaded.find((e) => e.getID() === testOtherEntity2.getID())).not.toBeUndefined();
|
|
87
|
-
});
|
|
88
|
-
it('returns empty results when field being queried by is null', async () => {
|
|
89
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
90
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
91
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).createAsync());
|
|
92
|
-
const loaded = await (0, entityUtils_1.enforceResultsAsync)(testEntity
|
|
93
|
-
.associationLoader()
|
|
94
|
-
.loadManyAssociatedEntitiesByFieldEqualingAsync('nullableField', TestEntity_1.default, 'stringField'));
|
|
95
|
-
expect(loaded).toHaveLength(0);
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
describe('loadAssociatedEntityThroughAsync', () => {
|
|
99
|
-
it('chain loads associated entities', async () => {
|
|
100
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
101
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
102
|
-
const testEntity4 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).createAsync());
|
|
103
|
-
const testEntity3 = await (0, results_1.enforceAsyncResult)(TestEntity2_1.default.creator(viewerContext)
|
|
104
|
-
.setField('foreignKey', testEntity4.getID())
|
|
105
|
-
.createAsync());
|
|
106
|
-
const testEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext)
|
|
107
|
-
.setField('testIndexedField', testEntity3.getID())
|
|
108
|
-
.createAsync());
|
|
109
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.default.creator(viewerContext)
|
|
110
|
-
.setField('foreignKey', testEntity2.getID())
|
|
111
|
-
.createAsync());
|
|
112
|
-
const loaded2Result = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
113
|
-
{
|
|
114
|
-
associatedEntityClass: TestEntity_1.default,
|
|
115
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
116
|
-
},
|
|
117
|
-
]);
|
|
118
|
-
expect(loaded2Result?.enforceValue().getID()).toEqual(testEntity2.getID());
|
|
119
|
-
const loaded3Result = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
120
|
-
{
|
|
121
|
-
associatedEntityClass: TestEntity_1.default,
|
|
122
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
associatedEntityClass: TestEntity2_1.default,
|
|
126
|
-
fieldIdentifyingAssociatedEntity: 'testIndexedField',
|
|
127
|
-
},
|
|
128
|
-
]);
|
|
129
|
-
expect(loaded3Result?.enforceValue().getID()).toEqual(testEntity3.getID());
|
|
130
|
-
const loaded4Result = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
131
|
-
{
|
|
132
|
-
associatedEntityClass: TestEntity_1.default,
|
|
133
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
associatedEntityClass: TestEntity2_1.default,
|
|
137
|
-
fieldIdentifyingAssociatedEntity: 'testIndexedField',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
associatedEntityClass: TestEntity_1.default,
|
|
141
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
142
|
-
},
|
|
143
|
-
]);
|
|
144
|
-
expect(loaded4Result?.enforceValue().getID()).toEqual(testEntity4.getID());
|
|
145
|
-
});
|
|
146
|
-
it('fails when chain loading associated entity fails', async () => {
|
|
147
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
148
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
149
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.default.creator(viewerContext).setField('foreignKey', (0, uuid_1.v4)()).createAsync());
|
|
150
|
-
const loadResult = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
151
|
-
{
|
|
152
|
-
associatedEntityClass: TestEntity_1.default,
|
|
153
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
154
|
-
},
|
|
155
|
-
]);
|
|
156
|
-
expect(loadResult?.ok).toBe(false);
|
|
157
|
-
});
|
|
158
|
-
it('supports chain loading by field equality', async () => {
|
|
159
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
160
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
161
|
-
const fieldValue = (0, uuid_1.v4)();
|
|
162
|
-
const testEntity2 = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('stringField', fieldValue).createAsync());
|
|
163
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.default.creator(viewerContext).setField('foreignKey', fieldValue).createAsync());
|
|
164
|
-
const loaded2Result = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
165
|
-
{
|
|
166
|
-
associatedEntityClass: TestEntity_1.default,
|
|
167
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
168
|
-
associatedEntityLookupByField: 'stringField',
|
|
169
|
-
},
|
|
170
|
-
]);
|
|
171
|
-
expect(loaded2Result?.enforceValue().getID()).toEqual(testEntity2.getID());
|
|
172
|
-
});
|
|
173
|
-
it('returns null when chain loading by field equality returns null', async () => {
|
|
174
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
175
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
176
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity2_1.default.creator(viewerContext).setField('foreignKey', (0, uuid_1.v4)()).createAsync());
|
|
177
|
-
const loaded2Result = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
178
|
-
{
|
|
179
|
-
associatedEntityClass: TestEntity_1.default,
|
|
180
|
-
fieldIdentifyingAssociatedEntity: 'foreignKey',
|
|
181
|
-
associatedEntityLookupByField: 'stringField',
|
|
182
|
-
},
|
|
183
|
-
]);
|
|
184
|
-
expect(loaded2Result).toBeNull();
|
|
185
|
-
});
|
|
186
|
-
it('returns null when chain loading by field is null', async () => {
|
|
187
|
-
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
188
|
-
const viewerContext = new TestViewerContext_1.default(companionProvider);
|
|
189
|
-
const testEntity = await (0, results_1.enforceAsyncResult)(TestEntity_1.default.creator(viewerContext).setField('nullableField', null).createAsync());
|
|
190
|
-
const loadedResult = await testEntity.associationLoader().loadAssociatedEntityThroughAsync([
|
|
191
|
-
{
|
|
192
|
-
associatedEntityClass: TestEntity_1.default,
|
|
193
|
-
fieldIdentifyingAssociatedEntity: 'nullableField',
|
|
194
|
-
},
|
|
195
|
-
]);
|
|
196
|
-
expect(loadedResult).toBeNull();
|
|
24
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
25
|
+
const testEntity = await SimpleTestEntity_1.default.creator(viewerContext).enforcing().createAsync();
|
|
26
|
+
expect(testEntity.associationLoader().withAuthorizationResults()).toBeInstanceOf(AuthorizationResultBasedEntityAssociationLoader_1.default);
|
|
197
27
|
});
|
|
198
28
|
});
|
|
199
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityAssociationLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityAssociationLoader-test.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"EntityAssociationLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityAssociationLoader-test.ts"],"names":[],"mappings":";;;;;AAAA,yIAAiH;AACjH,2GAAmF;AACnF,yFAAiE;AACjE,qEAA6C;AAC7C,wFAAgE;AAChE,kHAA+G;AAE/G,QAAQ,CAAC,iCAAuB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,MAAM,0BAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3F,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,CAC/D,0CAAgC,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,MAAM,0BAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3F,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC,cAAc,CAC9E,yDAA+C,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -103,9 +113,18 @@ it('runs through a common workflow', async () => {
|
|
|
103
113
|
const entityCompanionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
104
114
|
const vc1 = new TestUserViewerContext(entityCompanionProvider, (0, uuid_1.v4)());
|
|
105
115
|
const vc2 = new TestUserViewerContext(entityCompanionProvider, (0, uuid_1.v4)());
|
|
106
|
-
const blahOwner1 = await (0, results_1.enforceAsyncResult)(BlahEntity.creator(vc1)
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
const blahOwner1 = await (0, results_1.enforceAsyncResult)(BlahEntity.creator(vc1)
|
|
117
|
+
.withAuthorizationResults()
|
|
118
|
+
.setField('ownerID', vc1.getUserID())
|
|
119
|
+
.createAsync());
|
|
120
|
+
await (0, results_1.enforceAsyncResult)(BlahEntity.creator(vc1)
|
|
121
|
+
.withAuthorizationResults()
|
|
122
|
+
.setField('ownerID', vc1.getUserID())
|
|
123
|
+
.createAsync());
|
|
124
|
+
const blahOwner2 = await (0, results_1.enforceAsyncResult)(BlahEntity.creator(vc2)
|
|
125
|
+
.withAuthorizationResults()
|
|
126
|
+
.setField('ownerID', vc2.getUserID())
|
|
127
|
+
.createAsync());
|
|
109
128
|
// sanity check created objects
|
|
110
129
|
expect(blahOwner1.getField('ownerID')).toEqual(vc1.getUserID());
|
|
111
130
|
expect(blahOwner2.getField('ownerID')).toEqual(vc2.getUserID());
|
|
@@ -118,7 +137,10 @@ it('runs through a common workflow', async () => {
|
|
|
118
137
|
.loadManyByFieldEqualingAsync('ownerID', vc1.getUserID()));
|
|
119
138
|
expect(results).toHaveLength(2);
|
|
120
139
|
// check that two people can't create objects owned by others
|
|
121
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.creator(vc2)
|
|
140
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.creator(vc2)
|
|
141
|
+
.withAuthorizationResults()
|
|
142
|
+
.setField('ownerID', blahOwner1.getID())
|
|
143
|
+
.createAsync())).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
122
144
|
// check that empty load many returns nothing
|
|
123
145
|
const results2 = await BlahEntity.loader(vc1)
|
|
124
146
|
.withAuthorizationResults()
|
|
@@ -127,6 +149,6 @@ it('runs through a common workflow', async () => {
|
|
|
127
149
|
expect(value).toHaveLength(0);
|
|
128
150
|
}
|
|
129
151
|
// check that the user can't delete their own data (as specified by privacy rules)
|
|
130
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.
|
|
152
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.deleter(blahOwner2).withAuthorizationResults().deleteAsync())).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
131
153
|
});
|
|
132
154
|
//# sourceMappingURL=EntityCommonUseCases-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCommonUseCases-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityCommonUseCases-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntityCommonUseCases-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityCommonUseCases-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCompanion-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityCompanion-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntityCompanion-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityCompanion-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,yEAAiD;AACjD,yFAAiE;AACjE,iFAAyD;AAEzD,mFAA2D;AAI3D,mGAA2E;AAC3E,iHAIwD;AAExD,QAAQ,CAAC,yBAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,uBAAuB,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAA2B,CAAC,CAAC;QAE1E,MAAM,wBAAwB,GAAG,IAAA,iBAAI,GAA4C,CAAC;QAClF,IAAA,iBAAI,EAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,0DAAyB,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,IAAI,yBAAe,CACnC,uBAAuB,EACvB,wCAA8B,CAAC,yBAAyB,EAAE,EAC1D,IAAA,qBAAQ,EAAC,wBAAwB,CAAC,EAClC,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAyB,CAAC,CACxC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,6BAAmB,CAAC,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc,CAAC,8BAAoB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,sBAAsB,GAMxB;YACF,WAAW,EAAE,CAAC,IAAI,oDAAmB,CAAC,mBAAmB,CAAC,CAAC;YAC3D,QAAQ,EAAE,CAAC,IAAI,oDAAmB,CAAC,gBAAgB,CAAC,CAAC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,kCAAwB,EAAE,CAAC;QAEtD,MAAM,uBAAuB,GAAG,IAAI,iCAAuB,CACzD,cAAc,EACd,IAAI,GAAG,EAAE,EACT,IAAI,GAAG,EAAE,EACT,sBAAsB,CACvB,CAAC;QAEF,MAAM,wBAAwB,GAAG,IAAA,iBAAI,GAA4C,CAAC;QAClF,IAAA,iBAAI,EAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,0DAAyB,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,IAAI,yBAAe,CACnC,uBAAuB,EACvB,wCAA8B,CAAC,yBAAyB,EAAE,EAC1D,IAAA,qBAAQ,EAAC,wBAAwB,CAAC,EAClC,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAyB,CAAC,CACxC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,6BAAmB,CAAC,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc,CAAC,8BAAoB,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;QAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;QAEnC,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YACnC,WAAW,EAAE,CAAC,aAAc,CAAC,WAAY,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;YACrF,QAAQ,EAAE,CAAC,aAAc,CAAC,QAAS,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC;YAC5E,WAAW,EAAE,CAAC,aAAc,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|