@expo/entity 0.39.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +99 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js +122 -0
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
- package/build/AuthorizationResultBasedEntityLoader.d.ts +1 -1
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/{EntityMutator.d.ts → AuthorizationResultBasedEntityMutator.d.ts} +5 -17
- package/build/{EntityMutator.js → AuthorizationResultBasedEntityMutator.js} +22 -48
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -0
- package/build/EnforcingEntityAssociationLoader.d.ts +79 -0
- package/build/EnforcingEntityAssociationLoader.js +62 -0
- package/build/EnforcingEntityAssociationLoader.js.map +1 -0
- package/build/EnforcingEntityCreator.d.ts +24 -0
- package/build/EnforcingEntityCreator.js +32 -0
- package/build/EnforcingEntityCreator.js.map +1 -0
- package/build/EnforcingEntityDeleter.d.ts +17 -0
- package/build/EnforcingEntityDeleter.js +22 -0
- package/build/EnforcingEntityDeleter.js.map +1 -0
- package/build/EnforcingEntityUpdater.d.ts +24 -0
- package/build/EnforcingEntityUpdater.js +32 -0
- package/build/EnforcingEntityUpdater.js.map +1 -0
- package/build/Entity.d.ts +26 -8
- package/build/Entity.js +38 -25
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.d.ts +12 -91
- package/build/EntityAssociationLoader.js +20 -126
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCreator.d.ts +27 -0
- package/build/EntityCreator.js +39 -0
- package/build/EntityCreator.js.map +1 -0
- package/build/EntityDeleter.d.ts +27 -0
- package/build/EntityDeleter.js +40 -0
- package/build/EntityDeleter.js.map +1 -0
- package/build/EntityLoader.d.ts +4 -14
- package/build/EntityLoader.js +7 -20
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +2 -2
- package/build/EntityLoaderFactory.js +4 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutatorFactory.d.ts +4 -4
- package/build/EntityMutatorFactory.js +4 -4
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.d.ts +3 -3
- package/build/EntitySecondaryCacheLoader.js +1 -3
- package/build/EntitySecondaryCacheLoader.js.map +1 -1
- package/build/EntityUpdater.d.ts +27 -0
- package/build/EntityUpdater.js +40 -0
- package/build/EntityUpdater.js.map +1 -0
- package/build/ReadonlyEntity.d.ts +24 -5
- package/build/ReadonlyEntity.js +33 -7
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
- package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
- package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
- package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +242 -0
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/{EntityLoader-constructor-test.js → AuthorizationResultBasedEntityLoader-constructor-test.js} +10 -10
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +1 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +401 -0
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +1 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js +115 -0
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +1 -0
- package/build/__tests__/Entity-test.js +63 -5
- package/build/__tests__/Entity-test.js.map +1 -1
- package/build/__tests__/EntityAssociationLoader-test.js +14 -184
- package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js +34 -20
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityCompanion-test.js +17 -7
- package/build/__tests__/EntityCompanion-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +57 -71
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityLoader-test.js +22 -386
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +6 -9
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
- package/build/__tests__/EntityMutator-test.js +67 -70
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +17 -7
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +7 -7
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +47 -81
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
- package/build/__tests__/ReadonlyEntity-test.js +40 -7
- package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +6 -10
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +10 -22
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
- package/build/errors/EntityCacheAdapterError.js +17 -7
- package/build/errors/EntityCacheAdapterError.js.map +1 -1
- package/build/errors/EntityDatabaseAdapterError.js +17 -7
- package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
- package/build/errors/EntityInvalidFieldValueError.js +17 -7
- package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
- package/build/errors/EntityNotAuthorizedError.js +17 -7
- package/build/errors/EntityNotAuthorizedError.js.map +1 -1
- package/build/errors/EntityNotFoundError.js +17 -7
- package/build/errors/EntityNotFoundError.js.map +1 -1
- package/build/index.d.ts +19 -11
- package/build/index.js +24 -7
- package/build/index.js.map +1 -1
- package/build/internal/__tests__/EntityDataManager-test.js +42 -32
- package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +17 -7
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js +17 -7
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/utils/EntityPrivacyUtils.js +4 -8
- package/build/utils/EntityPrivacyUtils.js.map +1 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.js +38 -28
- package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +1 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +5 -5
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +1 -1
- package/build/utils/testing/StubDatabaseAdapter.js +17 -7
- package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
- package/build/utils/testing/StubQueryContextProvider.d.ts +1 -3
- package/build/utils/testing/StubQueryContextProvider.js +1 -3
- package/build/utils/testing/StubQueryContextProvider.js.map +1 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js +2 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +1 -1
- package/package.json +19 -3
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +490 -0
- package/src/AuthorizationResultBasedEntityLoader.ts +1 -1
- package/src/{EntityMutator.ts → AuthorizationResultBasedEntityMutator.ts} +62 -58
- package/src/EnforcingEntityAssociationLoader.ts +390 -0
- package/src/EnforcingEntityCreator.ts +55 -0
- package/src/EnforcingEntityDeleter.ts +44 -0
- package/src/EnforcingEntityUpdater.ts +55 -0
- package/src/Entity.ts +140 -29
- package/src/EntityAssociationLoader.ts +38 -495
- package/src/EntityCreator.ts +73 -0
- package/src/EntityDeleter.ts +73 -0
- package/src/EntityLoader.ts +10 -49
- package/src/EntityLoaderFactory.ts +20 -3
- package/src/EntityMutatorFactory.ts +32 -7
- package/src/EntitySecondaryCacheLoader.ts +5 -7
- package/src/EntityUpdater.ts +73 -0
- package/src/ReadonlyEntity.ts +121 -7
- package/src/ViewerScopedEntityLoaderFactory.ts +9 -2
- package/src/ViewerScopedEntityMutatorFactory.ts +29 -4
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +323 -0
- package/src/__tests__/{EntityLoader-constructor-test.ts → AuthorizationResultBasedEntityLoader-constructor-test.ts} +16 -9
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +730 -0
- package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +253 -0
- package/src/__tests__/Entity-test.ts +77 -5
- package/src/__tests__/EntityAssociationLoader-test.ts +15 -260
- package/src/__tests__/EntityCommonUseCases-test.ts +24 -15
- package/src/__tests__/EntityEdges-test.ts +44 -64
- package/src/__tests__/EntityLoader-test.ts +29 -681
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +8 -9
- package/src/__tests__/EntityMutator-test.ts +116 -103
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -7
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +65 -81
- package/src/__tests__/ReadonlyEntity-test.ts +47 -7
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +15 -15
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +19 -22
- package/src/index.ts +19 -11
- package/src/internal/__tests__/EntityDataManager-test.ts +25 -25
- package/src/utils/EntityPrivacyUtils.ts +10 -13
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +21 -23
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +5 -5
- package/src/utils/testing/StubQueryContextProvider.ts +1 -3
- package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +3 -1
- package/build/EntityMutator.js.map +0 -1
- package/build/__tests__/EntityLoader-constructor-test.js.map +0 -1
- /package/build/__tests__/{EntityLoader-constructor-test.d.ts → AuthorizationResultBasedEntityLoader-constructor-test.d.ts} +0 -0
|
@@ -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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"}
|
|
@@ -3,21 +3,79 @@ 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 AuthorizationResultBasedEntityMutator_1 = require("../AuthorizationResultBasedEntityMutator");
|
|
7
|
+
const EnforcingEntityCreator_1 = __importDefault(require("../EnforcingEntityCreator"));
|
|
8
|
+
const EnforcingEntityDeleter_1 = __importDefault(require("../EnforcingEntityDeleter"));
|
|
9
|
+
const EnforcingEntityUpdater_1 = __importDefault(require("../EnforcingEntityUpdater"));
|
|
6
10
|
const Entity_1 = __importDefault(require("../Entity"));
|
|
7
|
-
const EntityMutator_1 = require("../EntityMutator");
|
|
8
11
|
const ViewerContext_1 = __importDefault(require("../ViewerContext"));
|
|
9
12
|
const SimpleTestEntity_1 = __importDefault(require("../testfixtures/SimpleTestEntity"));
|
|
10
13
|
const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
|
|
11
14
|
describe(Entity_1.default, () => {
|
|
12
15
|
describe('creator', () => {
|
|
13
|
-
it('creates a new
|
|
16
|
+
it('creates a new EnforcingEntityCreator', () => {
|
|
14
17
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
15
18
|
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
16
|
-
expect(SimpleTestEntity_1.default.creator(viewerContext)).toBeInstanceOf(
|
|
19
|
+
expect(SimpleTestEntity_1.default.creator(viewerContext)).toBeInstanceOf(EnforcingEntityCreator_1.default);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('creatorWithAuthorizationResults', () => {
|
|
23
|
+
it('creates a new AuthorizationResultBasedCreateMutator', () => {
|
|
24
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
25
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
26
|
+
expect(SimpleTestEntity_1.default.creatorWithAuthorizationResults(viewerContext)).toBeInstanceOf(AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedCreateMutator);
|
|
17
27
|
});
|
|
18
28
|
});
|
|
19
29
|
describe('updater', () => {
|
|
20
|
-
it('creates a new
|
|
30
|
+
it('creates a new EnforcingEntityUpdater', () => {
|
|
31
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
32
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
33
|
+
const data = {
|
|
34
|
+
id: 'what',
|
|
35
|
+
};
|
|
36
|
+
const testEntity = new SimpleTestEntity_1.default({
|
|
37
|
+
viewerContext,
|
|
38
|
+
id: 'what',
|
|
39
|
+
databaseFields: data,
|
|
40
|
+
selectedFields: data,
|
|
41
|
+
});
|
|
42
|
+
expect(SimpleTestEntity_1.default.updater(testEntity)).toBeInstanceOf(EnforcingEntityUpdater_1.default);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('updaterWithAuthorizationResults', () => {
|
|
46
|
+
it('creates a new AuthorizationResultBasedUpdateMutator', () => {
|
|
47
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
48
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
49
|
+
const data = {
|
|
50
|
+
id: 'what',
|
|
51
|
+
};
|
|
52
|
+
const testEntity = new SimpleTestEntity_1.default({
|
|
53
|
+
viewerContext,
|
|
54
|
+
id: 'what',
|
|
55
|
+
databaseFields: data,
|
|
56
|
+
selectedFields: data,
|
|
57
|
+
});
|
|
58
|
+
expect(SimpleTestEntity_1.default.updaterWithAuthorizationResults(testEntity)).toBeInstanceOf(AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedUpdateMutator);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('deleter', () => {
|
|
62
|
+
it('creates a new EnforcingEntityDeleter', () => {
|
|
63
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
64
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
65
|
+
const data = {
|
|
66
|
+
id: 'what',
|
|
67
|
+
};
|
|
68
|
+
const testEntity = new SimpleTestEntity_1.default({
|
|
69
|
+
viewerContext,
|
|
70
|
+
id: 'what',
|
|
71
|
+
databaseFields: data,
|
|
72
|
+
selectedFields: data,
|
|
73
|
+
});
|
|
74
|
+
expect(SimpleTestEntity_1.default.deleter(testEntity)).toBeInstanceOf(EnforcingEntityDeleter_1.default);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('deleterWithAuthorizationResults', () => {
|
|
78
|
+
it('creates a new AuthorizationResultBasedDeleteMutator', () => {
|
|
21
79
|
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
22
80
|
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
23
81
|
const data = {
|
|
@@ -29,7 +87,7 @@ describe(Entity_1.default, () => {
|
|
|
29
87
|
databaseFields: data,
|
|
30
88
|
selectedFields: data,
|
|
31
89
|
});
|
|
32
|
-
expect(SimpleTestEntity_1.default.
|
|
90
|
+
expect(SimpleTestEntity_1.default.deleterWithAuthorizationResults(testEntity)).toBeInstanceOf(AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedDeleteMutator);
|
|
33
91
|
});
|
|
34
92
|
});
|
|
35
93
|
});
|
|
@@ -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,oGAIkD;AAClD,uFAA+D;AAC/D,uFAA+D;AAC/D,uFAA+D;AAC/D,uDAA+B;AAC/B,qEAA6C;AAC7C,wFAAgE;AAChE,kHAA+G;AAE/G,QAAQ,CAAC,gBAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,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,gCAAsB,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,CAAC,0BAAgB,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CACpF,6EAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,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,gCAAsB,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,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,+BAA+B,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CACjF,6EAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,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,gCAAsB,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,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,+BAA+B,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CACjF,6EAAqC,CACtC,CAAC;QACJ,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).createAsync();
|
|
18
|
+
expect(testEntity.associationLoader()).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).createAsync();
|
|
26
|
+
expect(testEntity.associationLoaderWithAuthorizationResults()).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,WAAW,EAAE,CAAC;YAC/E,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc,CAAC,0CAAgC,CAAC,CAAC;QAC1F,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,WAAW,EAAE,CAAC;YAC/E,MAAM,CAAC,UAAU,CAAC,yCAAyC,EAAE,CAAC,CAAC,cAAc,CAC3E,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,30 +113,34 @@ 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.
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
const blahOwner1 = await (0, results_1.enforceAsyncResult)(BlahEntity.creatorWithAuthorizationResults(vc1)
|
|
117
|
+
.setField('ownerID', vc1.getUserID())
|
|
118
|
+
.createAsync());
|
|
119
|
+
await (0, results_1.enforceAsyncResult)(BlahEntity.creatorWithAuthorizationResults(vc1)
|
|
120
|
+
.setField('ownerID', vc1.getUserID())
|
|
121
|
+
.createAsync());
|
|
122
|
+
const blahOwner2 = await (0, results_1.enforceAsyncResult)(BlahEntity.creatorWithAuthorizationResults(vc2)
|
|
123
|
+
.setField('ownerID', vc2.getUserID())
|
|
124
|
+
.createAsync());
|
|
109
125
|
// sanity check created objects
|
|
110
126
|
expect(blahOwner1.getField('ownerID')).toEqual(vc1.getUserID());
|
|
111
127
|
expect(blahOwner2.getField('ownerID')).toEqual(vc2.getUserID());
|
|
112
128
|
// check that two people can't read each others data
|
|
113
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.
|
|
114
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.
|
|
129
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.loaderWithAuthorizationResults(vc1).loadByIDAsync(blahOwner2.getID()))).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
130
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.loaderWithAuthorizationResults(vc2).loadByIDAsync(blahOwner1.getID()))).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
115
131
|
// check that all of owner 1's objects can be loaded
|
|
116
|
-
const results = await (0, entityUtils_1.enforceResultsAsync)(BlahEntity.
|
|
117
|
-
.withAuthorizationResults()
|
|
118
|
-
.loadManyByFieldEqualingAsync('ownerID', vc1.getUserID()));
|
|
132
|
+
const results = await (0, entityUtils_1.enforceResultsAsync)(BlahEntity.loaderWithAuthorizationResults(vc1).loadManyByFieldEqualingAsync('ownerID', vc1.getUserID()));
|
|
119
133
|
expect(results).toHaveLength(2);
|
|
120
134
|
// check that two people can't create objects owned by others
|
|
121
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.
|
|
135
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.creatorWithAuthorizationResults(vc2)
|
|
136
|
+
.setField('ownerID', blahOwner1.getID())
|
|
137
|
+
.createAsync())).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
122
138
|
// check that empty load many returns nothing
|
|
123
|
-
const results2 = await BlahEntity.
|
|
124
|
-
.withAuthorizationResults()
|
|
125
|
-
.loadManyByFieldEqualingManyAsync('ownerID', []);
|
|
139
|
+
const results2 = await BlahEntity.loaderWithAuthorizationResults(vc1).loadManyByFieldEqualingManyAsync('ownerID', []);
|
|
126
140
|
for (const value in results2.values) {
|
|
127
141
|
expect(value).toHaveLength(0);
|
|
128
142
|
}
|
|
129
143
|
// check that the user can't delete their own data (as specified by privacy rules)
|
|
130
|
-
await expect((0, results_1.enforceAsyncResult)(BlahEntity.
|
|
144
|
+
await expect((0, results_1.enforceAsyncResult)(BlahEntity.deleterWithAuthorizationResults(blahOwner2).deleteAsync())).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
|
|
131
145
|
});
|
|
132
146
|
//# 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
|
};
|