@expo/entity 0.24.0 → 0.25.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.
Files changed (113) hide show
  1. package/build/ComposedEntityCacheAdapter.d.ts +19 -0
  2. package/build/ComposedEntityCacheAdapter.js +66 -0
  3. package/build/ComposedEntityCacheAdapter.js.map +1 -0
  4. package/build/ComposedSecondaryEntityCache.d.ts +15 -0
  5. package/build/ComposedSecondaryEntityCache.js +37 -0
  6. package/build/ComposedSecondaryEntityCache.js.map +1 -0
  7. package/build/Entity.js +6 -6
  8. package/build/Entity.js.map +1 -1
  9. package/build/EntityAssociationLoader.js +4 -4
  10. package/build/EntityAssociationLoader.js.map +1 -1
  11. package/build/EntityLoader.d.ts +3 -2
  12. package/build/EntityLoader.js +5 -4
  13. package/build/EntityLoader.js.map +1 -1
  14. package/build/EntityLoaderFactory.d.ts +2 -2
  15. package/build/EntityLoaderFactory.js +2 -2
  16. package/build/EntityLoaderFactory.js.map +1 -1
  17. package/build/EntityMutationInfo.d.ts +12 -3
  18. package/build/EntityMutator.d.ts +5 -4
  19. package/build/EntityMutator.js +31 -24
  20. package/build/EntityMutator.js.map +1 -1
  21. package/build/EntityMutatorFactory.d.ts +4 -4
  22. package/build/EntityMutatorFactory.js +6 -6
  23. package/build/EntityMutatorFactory.js.map +1 -1
  24. package/build/EntityPrivacyPolicy.d.ts +15 -4
  25. package/build/EntityPrivacyPolicy.js +14 -14
  26. package/build/EntityPrivacyPolicy.js.map +1 -1
  27. package/build/IEntityGenericCacher.d.ts +2 -2
  28. package/build/ReadonlyEntity.js +1 -1
  29. package/build/ReadonlyEntity.js.map +1 -1
  30. package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
  31. package/build/ViewerScopedEntityLoaderFactory.js +2 -2
  32. package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
  33. package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
  34. package/build/ViewerScopedEntityMutatorFactory.js +6 -6
  35. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  36. package/build/__tests__/ComposedCacheAdapter-test.d.ts +1 -0
  37. package/build/__tests__/ComposedCacheAdapter-test.js +198 -0
  38. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -0
  39. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +1 -0
  40. package/build/__tests__/ComposedSecondaryEntityCache-test.js +65 -0
  41. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +1 -0
  42. package/build/__tests__/EntityCommonUseCases-test.js +1 -1
  43. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  44. package/build/__tests__/EntityEdges-test.js +260 -37
  45. package/build/__tests__/EntityEdges-test.js.map +1 -1
  46. package/build/__tests__/EntityLoader-constructor-test.js +2 -1
  47. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  48. package/build/__tests__/EntityLoader-test.js +19 -11
  49. package/build/__tests__/EntityLoader-test.js.map +1 -1
  50. package/build/__tests__/EntityMutator-test.js +96 -43
  51. package/build/__tests__/EntityMutator-test.js.map +1 -1
  52. package/build/__tests__/EntityPrivacyPolicy-test.js +23 -12
  53. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  54. package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -1
  55. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  56. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +3 -2
  57. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
  58. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +3 -2
  59. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
  60. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -1
  61. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +1 -1
  62. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  63. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -1
  64. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +1 -1
  65. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  66. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -1
  67. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +1 -1
  68. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  69. package/build/rules/PrivacyPolicyRule.d.ts +2 -1
  70. package/build/rules/PrivacyPolicyRule.js.map +1 -1
  71. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +1 -0
  72. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
  73. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +1 -0
  74. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
  75. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +1 -0
  76. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
  77. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +2 -0
  78. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +6 -6
  79. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
  80. package/package.json +1 -1
  81. package/src/ComposedEntityCacheAdapter.ts +86 -0
  82. package/src/ComposedSecondaryEntityCache.ts +63 -0
  83. package/src/Entity.ts +6 -4
  84. package/src/EntityAssociationLoader.ts +4 -4
  85. package/src/EntityLoader.ts +5 -1
  86. package/src/EntityLoaderFactory.ts +4 -2
  87. package/src/EntityMutationInfo.ts +13 -3
  88. package/src/EntityMutator.ts +44 -21
  89. package/src/EntityMutatorFactory.ts +10 -4
  90. package/src/EntityPrivacyPolicy.ts +31 -1
  91. package/src/IEntityGenericCacher.ts +2 -2
  92. package/src/ReadonlyEntity.ts +1 -1
  93. package/src/ViewerScopedEntityLoaderFactory.ts +8 -3
  94. package/src/ViewerScopedEntityMutatorFactory.ts +22 -7
  95. package/src/__tests__/ComposedCacheAdapter-test.ts +280 -0
  96. package/src/__tests__/ComposedSecondaryEntityCache-test.ts +101 -0
  97. package/src/__tests__/EntityCommonUseCases-test.ts +2 -1
  98. package/src/__tests__/EntityEdges-test.ts +286 -45
  99. package/src/__tests__/EntityLoader-constructor-test.ts +3 -1
  100. package/src/__tests__/EntityLoader-test.ts +26 -1
  101. package/src/__tests__/EntityMutator-test.ts +99 -37
  102. package/src/__tests__/EntityPrivacyPolicy-test.ts +66 -7
  103. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +1 -0
  104. package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +4 -2
  105. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +6 -2
  106. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +2 -0
  107. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +2 -0
  108. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +2 -0
  109. package/src/rules/PrivacyPolicyRule.ts +2 -0
  110. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +2 -0
  111. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +2 -0
  112. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +2 -0
  113. package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +14 -6
@@ -39,6 +39,7 @@ describe(EntityLoader_1.default, () => {
39
39
  var _a;
40
40
  const dateToInsert = new Date();
41
41
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
42
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
42
43
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
43
44
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
44
45
  const id1 = (0, uuid_1.v4)();
@@ -71,7 +72,7 @@ describe(EntityLoader_1.default, () => {
71
72
  const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
72
73
  const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
73
74
  const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
74
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
75
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
75
76
  const entity = await (0, results_1.enforceAsyncResult)(entityLoader.loadByIDAsync(id1));
76
77
  expect(entity.getID()).toEqual(id1);
77
78
  expect(entity.getField('dateField')).toEqual(dateToInsert);
@@ -96,6 +97,7 @@ describe(EntityLoader_1.default, () => {
96
97
  const privacyPolicy = new TestEntity_1.TestEntityPrivacyPolicy();
97
98
  const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
98
99
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
100
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
99
101
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
100
102
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
101
103
  const id1 = (0, uuid_1.v4)();
@@ -136,7 +138,7 @@ describe(EntityLoader_1.default, () => {
136
138
  const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
137
139
  const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
138
140
  const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
139
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
141
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
140
142
  const entities = await (0, entityUtils_1.enforceResultsAsync)(entityLoader.loadManyByFieldEqualityConjunctionAsync([
141
143
  {
142
144
  fieldName: 'stringField',
@@ -148,7 +150,7 @@ describe(EntityLoader_1.default, () => {
148
150
  },
149
151
  ]));
150
152
  expect(entities).toHaveLength(2);
151
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).twice();
153
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, privacyPolicyEvaluationContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).twice();
152
154
  await expect(entityLoader.loadManyByFieldEqualityConjunctionAsync([
153
155
  { fieldName: 'customIdField', fieldValue: 'not-a-uuid' },
154
156
  ])).rejects.toThrowError('Entity field not valid: TestEntity (customIdField = not-a-uuid)');
@@ -157,6 +159,7 @@ describe(EntityLoader_1.default, () => {
157
159
  const privacyPolicy = new TestEntity_1.TestEntityPrivacyPolicy();
158
160
  const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
159
161
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
162
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
160
163
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
161
164
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
162
165
  const id1 = (0, uuid_1.v4)();
@@ -179,36 +182,39 @@ describe(EntityLoader_1.default, () => {
179
182
  const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
180
183
  const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
181
184
  const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
182
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
185
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
183
186
  const entity = await (0, results_1.enforceAsyncResult)(entityLoader.loadByIDAsync(id1));
184
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, entity, (0, ts_mockito_1.anything)())).once();
187
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, privacyPolicyEvaluationContext, entity, (0, ts_mockito_1.anything)())).once();
185
188
  });
186
189
  it('invalidates upon invalidate one', async () => {
187
190
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
191
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
188
192
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
189
193
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
190
194
  const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
191
195
  const dataManagerMock = (0, ts_mockito_1.mock)();
192
196
  const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
193
197
  const id1 = (0, uuid_1.v4)();
194
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
198
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
195
199
  await entityLoader.invalidateFieldsAsync({ customIdField: id1 });
196
200
  (0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
197
201
  });
198
202
  it('invalidates upon invalidate by field', async () => {
199
203
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
204
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
200
205
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
201
206
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
202
207
  const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
203
208
  const dataManagerMock = (0, ts_mockito_1.mock)();
204
209
  const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
205
210
  const id1 = (0, uuid_1.v4)();
206
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
211
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
207
212
  await entityLoader.invalidateFieldsAsync({ customIdField: id1 });
208
213
  (0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
209
214
  });
210
215
  it('invalidates upon invalidate by entity', async () => {
211
216
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
217
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
212
218
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
213
219
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
214
220
  const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
@@ -218,12 +224,13 @@ describe(EntityLoader_1.default, () => {
218
224
  const entityMock = (0, ts_mockito_1.mock)(TestEntity_1.default);
219
225
  (0, ts_mockito_1.when)(entityMock.getAllDatabaseFields()).thenReturn({ customIdField: id1 });
220
226
  const entityInstance = (0, ts_mockito_1.instance)(entityMock);
221
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
227
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
222
228
  await entityLoader.invalidateEntityAsync(entityInstance);
223
229
  (0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
224
230
  });
225
231
  it('returns error result when not allowed', async () => {
226
232
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
233
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
227
234
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
228
235
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
229
236
  const privacyPolicyMock = (0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy);
@@ -231,10 +238,10 @@ describe(EntityLoader_1.default, () => {
231
238
  const id1 = (0, uuid_1.v4)();
232
239
  (0, ts_mockito_1.when)(dataManagerMock.loadManyByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve(new Map().set(id1, [{ customIdField: id1 }]));
233
240
  const rejectionError = new Error();
234
- (0, ts_mockito_1.when)(privacyPolicyMock.authorizeReadAsync(viewerContext, queryContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
241
+ (0, ts_mockito_1.when)(privacyPolicyMock.authorizeReadAsync(viewerContext, queryContext, privacyPolicyEvaluationContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
235
242
  const privacyPolicy = (0, ts_mockito_1.instance)(privacyPolicyMock);
236
243
  const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
237
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
244
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
238
245
  const entityResult = await entityLoader.loadByIDAsync(id1);
239
246
  expect(entityResult.ok).toBe(false);
240
247
  expect(entityResult.reason).toEqual(rejectionError);
@@ -242,6 +249,7 @@ describe(EntityLoader_1.default, () => {
242
249
  });
243
250
  it('throws upon database adapter error', async () => {
244
251
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
252
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
245
253
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
246
254
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
247
255
  const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
@@ -249,7 +257,7 @@ describe(EntityLoader_1.default, () => {
249
257
  const error = new Error();
250
258
  (0, ts_mockito_1.when)(dataManagerMock.loadManyByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenReject(error);
251
259
  const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
252
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
260
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
253
261
  const loadByValue = (0, uuid_1.v4)();
254
262
  await expect(entityLoader.loadByIDAsync(loadByValue)).rejects.toEqual(error);
255
263
  await expect(entityLoader.enforcing().loadByIDAsync(loadByValue)).rejects.toEqual(error);
@@ -1 +1 @@
1
- {"version":3,"file":"EntityLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-test.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,7 @@ describe(EntityMutatorFactory_1.default, () => {
116
116
  describe('forCreate', () => {
117
117
  it('creates entities', async () => {
118
118
  const viewerContext = (0, ts_mockito_1.mock)();
119
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
119
120
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
120
121
  const id1 = (0, uuid_1.v4)();
121
122
  const id2 = (0, uuid_1.v4)();
@@ -138,13 +139,14 @@ describe(EntityMutatorFactory_1.default, () => {
138
139
  },
139
140
  ]);
140
141
  const newEntity = await entityMutatorFactory
141
- .forCreate(viewerContext, queryContext)
142
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
142
143
  .setField('stringField', 'huh')
143
144
  .enforceCreateAsync();
144
145
  expect(newEntity).toBeTruthy();
145
146
  });
146
147
  it('checks privacy', async () => {
147
148
  const viewerContext = (0, ts_mockito_1.mock)();
149
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
148
150
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
149
151
  const id1 = (0, uuid_1.v4)();
150
152
  const id2 = (0, uuid_1.v4)();
@@ -168,13 +170,14 @@ describe(EntityMutatorFactory_1.default, () => {
168
170
  ]);
169
171
  const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
170
172
  await entityMutatorFactory
171
- .forCreate(viewerContext, queryContext)
173
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
172
174
  .setField('stringField', 'huh')
173
175
  .enforceCreateAsync();
174
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeCreateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
176
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeCreateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), privacyPolicyEvaluationContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
175
177
  });
176
178
  it('executes triggers', async () => {
177
179
  const viewerContext = (0, ts_mockito_1.mock)();
180
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
178
181
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
179
182
  const id1 = (0, uuid_1.v4)();
180
183
  const id2 = (0, uuid_1.v4)();
@@ -198,7 +201,7 @@ describe(EntityMutatorFactory_1.default, () => {
198
201
  ]);
199
202
  const triggerSpies = setUpMutationTriggerSpies(mutationTriggers);
200
203
  await entityMutatorFactory
201
- .forCreate(viewerContext, queryContext)
204
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
202
205
  .setField('stringField', 'huh')
203
206
  .enforceCreateAsync();
204
207
  verifyTriggerCounts(viewerContext, triggerSpies, {
@@ -212,6 +215,7 @@ describe(EntityMutatorFactory_1.default, () => {
212
215
  });
213
216
  it('executes validators', async () => {
214
217
  const viewerContext = (0, ts_mockito_1.mock)();
218
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
215
219
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
216
220
  const id1 = (0, uuid_1.v4)();
217
221
  const id2 = (0, uuid_1.v4)();
@@ -235,7 +239,7 @@ describe(EntityMutatorFactory_1.default, () => {
235
239
  ]);
236
240
  const validatorSpies = setUpMutationValidatorSpies(mutationValidators);
237
241
  await entityMutatorFactory
238
- .forCreate(viewerContext, queryContext)
242
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
239
243
  .setField('stringField', 'huh')
240
244
  .enforceCreateAsync();
241
245
  verifyValidatorCounts(viewerContext, validatorSpies, 1, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
@@ -244,6 +248,7 @@ describe(EntityMutatorFactory_1.default, () => {
244
248
  describe('forUpdate', () => {
245
249
  it('updates entities', async () => {
246
250
  const viewerContext = (0, ts_mockito_1.mock)();
251
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
247
252
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
248
253
  const id1 = (0, uuid_1.v4)();
249
254
  const id2 = (0, uuid_1.v4)();
@@ -265,19 +270,24 @@ describe(EntityMutatorFactory_1.default, () => {
265
270
  nullableField: null,
266
271
  },
267
272
  ]);
268
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id2));
273
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
274
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
275
+ .loadByIDAsync(id2));
269
276
  const updatedEntity = await entityMutatorFactory
270
- .forUpdate(existingEntity, queryContext)
277
+ .forUpdate(existingEntity, queryContext, privacyPolicyEvaluationContext)
271
278
  .setField('stringField', 'huh2')
272
279
  .enforceUpdateAsync();
273
280
  expect(updatedEntity).toBeTruthy();
274
281
  expect(updatedEntity.getAllFields()).not.toMatchObject(existingEntity.getAllFields());
275
282
  expect(updatedEntity.getField('stringField')).toEqual('huh2');
276
- const reloadedEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id2));
283
+ const reloadedEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
284
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
285
+ .loadByIDAsync(id2));
277
286
  expect(reloadedEntity.getAllFields()).toMatchObject(updatedEntity.getAllFields());
278
287
  });
279
288
  it('checks privacy', async () => {
280
289
  const viewerContext = (0, ts_mockito_1.mock)();
290
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
281
291
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
282
292
  const id1 = (0, uuid_1.v4)();
283
293
  const id2 = (0, uuid_1.v4)();
@@ -300,15 +310,18 @@ describe(EntityMutatorFactory_1.default, () => {
300
310
  },
301
311
  ]);
302
312
  const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
303
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id2));
313
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
314
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
315
+ .loadByIDAsync(id2));
304
316
  await entityMutatorFactory
305
- .forUpdate(existingEntity, queryContext)
317
+ .forUpdate(existingEntity, queryContext, privacyPolicyEvaluationContext)
306
318
  .setField('stringField', 'huh2')
307
319
  .enforceUpdateAsync();
308
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeUpdateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
320
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeUpdateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), privacyPolicyEvaluationContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
309
321
  });
310
322
  it('executes triggers', async () => {
311
323
  const viewerContext = (0, ts_mockito_1.mock)();
324
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
312
325
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
313
326
  const id1 = (0, uuid_1.v4)();
314
327
  const id2 = (0, uuid_1.v4)();
@@ -331,9 +344,11 @@ describe(EntityMutatorFactory_1.default, () => {
331
344
  },
332
345
  ]);
333
346
  const triggerSpies = setUpMutationTriggerSpies(mutationTriggers);
334
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id2));
347
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
348
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
349
+ .loadByIDAsync(id2));
335
350
  await entityMutatorFactory
336
- .forUpdate(existingEntity, queryContext)
351
+ .forUpdate(existingEntity, queryContext, privacyPolicyEvaluationContext)
337
352
  .setField('stringField', 'huh2')
338
353
  .enforceUpdateAsync();
339
354
  verifyTriggerCounts(viewerContext, triggerSpies, {
@@ -347,6 +362,7 @@ describe(EntityMutatorFactory_1.default, () => {
347
362
  });
348
363
  it('executes validators', async () => {
349
364
  const viewerContext = (0, ts_mockito_1.mock)();
365
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
350
366
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
351
367
  const id1 = (0, uuid_1.v4)();
352
368
  const id2 = (0, uuid_1.v4)();
@@ -369,9 +385,11 @@ describe(EntityMutatorFactory_1.default, () => {
369
385
  },
370
386
  ]);
371
387
  const validatorSpies = setUpMutationValidatorSpies(mutationValidators);
372
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id2));
388
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
389
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
390
+ .loadByIDAsync(id2));
373
391
  await entityMutatorFactory
374
- .forUpdate(existingEntity, queryContext)
392
+ .forUpdate(existingEntity, queryContext, privacyPolicyEvaluationContext)
375
393
  .setField('stringField', 'huh2')
376
394
  .enforceUpdateAsync();
377
395
  verifyValidatorCounts(viewerContext, validatorSpies, 1, {
@@ -383,6 +401,7 @@ describe(EntityMutatorFactory_1.default, () => {
383
401
  describe('forDelete', () => {
384
402
  it('deletes entities', async () => {
385
403
  const viewerContext = (0, ts_mockito_1.mock)();
404
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
386
405
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
387
406
  const id1 = (0, uuid_1.v4)();
388
407
  const { entityMutatorFactory, entityLoaderFactory } = createEntityMutatorFactory([
@@ -395,13 +414,20 @@ describe(EntityMutatorFactory_1.default, () => {
395
414
  nullableField: null,
396
415
  },
397
416
  ]);
398
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id1));
417
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
418
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
419
+ .loadByIDAsync(id1));
399
420
  expect(existingEntity).toBeTruthy();
400
- await entityMutatorFactory.forDelete(existingEntity, queryContext).enforceDeleteAsync();
401
- await expect((0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id1))).rejects.toBeInstanceOf(Error);
421
+ await entityMutatorFactory
422
+ .forDelete(existingEntity, queryContext, privacyPolicyEvaluationContext)
423
+ .enforceDeleteAsync();
424
+ await expect((0, results_1.enforceAsyncResult)(entityLoaderFactory
425
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
426
+ .loadByIDAsync(id1))).rejects.toBeInstanceOf(Error);
402
427
  });
403
428
  it('checks privacy', async () => {
404
429
  const viewerContext = (0, ts_mockito_1.mock)();
430
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
405
431
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
406
432
  const id1 = (0, uuid_1.v4)();
407
433
  const { privacyPolicy, entityMutatorFactory, entityLoaderFactory } = createEntityMutatorFactory([
@@ -415,12 +441,17 @@ describe(EntityMutatorFactory_1.default, () => {
415
441
  },
416
442
  ]);
417
443
  const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
418
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id1));
419
- await entityMutatorFactory.forDelete(existingEntity, queryContext).enforceDeleteAsync();
420
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeDeleteAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
444
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
445
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
446
+ .loadByIDAsync(id1));
447
+ await entityMutatorFactory
448
+ .forDelete(existingEntity, queryContext, privacyPolicyEvaluationContext)
449
+ .enforceDeleteAsync();
450
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeDeleteAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).once();
421
451
  });
422
452
  it('executes triggers', async () => {
423
453
  const viewerContext = (0, ts_mockito_1.mock)();
454
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
424
455
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
425
456
  const id1 = (0, uuid_1.v4)();
426
457
  const { mutationTriggers, entityMutatorFactory, entityLoaderFactory } = createEntityMutatorFactory([
@@ -434,8 +465,12 @@ describe(EntityMutatorFactory_1.default, () => {
434
465
  },
435
466
  ]);
436
467
  const triggerSpies = setUpMutationTriggerSpies(mutationTriggers);
437
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id1));
438
- await entityMutatorFactory.forDelete(existingEntity, queryContext).enforceDeleteAsync();
468
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
469
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
470
+ .loadByIDAsync(id1));
471
+ await entityMutatorFactory
472
+ .forDelete(existingEntity, queryContext, privacyPolicyEvaluationContext)
473
+ .enforceDeleteAsync();
439
474
  verifyTriggerCounts(viewerContext, triggerSpies, {
440
475
  beforeCreate: false,
441
476
  afterCreate: false,
@@ -447,6 +482,7 @@ describe(EntityMutatorFactory_1.default, () => {
447
482
  });
448
483
  it('does not execute validators', async () => {
449
484
  const viewerContext = (0, ts_mockito_1.mock)();
485
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
450
486
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
451
487
  const id1 = (0, uuid_1.v4)();
452
488
  const { mutationValidators, entityMutatorFactory, entityLoaderFactory } = createEntityMutatorFactory([
@@ -460,8 +496,12 @@ describe(EntityMutatorFactory_1.default, () => {
460
496
  },
461
497
  ]);
462
498
  const validatorSpies = setUpMutationValidatorSpies(mutationValidators);
463
- const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory.forLoad(viewerContext, queryContext).loadByIDAsync(id1));
464
- await entityMutatorFactory.forDelete(existingEntity, queryContext).enforceDeleteAsync();
499
+ const existingEntity = await (0, results_1.enforceAsyncResult)(entityLoaderFactory
500
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
501
+ .loadByIDAsync(id1));
502
+ await entityMutatorFactory
503
+ .forDelete(existingEntity, queryContext, privacyPolicyEvaluationContext)
504
+ .enforceDeleteAsync();
465
505
  verifyValidatorCounts(viewerContext, validatorSpies, 0, {
466
506
  type: EntityMutationInfo_1.EntityMutationType.DELETE,
467
507
  });
@@ -469,6 +509,7 @@ describe(EntityMutatorFactory_1.default, () => {
469
509
  });
470
510
  it('invalidates cache for fields upon create', async () => {
471
511
  const viewerContext = (0, ts_mockito_1.mock)();
512
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
472
513
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
473
514
  const id1 = (0, uuid_1.v4)();
474
515
  const { entityMutatorFactory, entityLoaderFactory } = createEntityMutatorFactory([
@@ -482,20 +523,21 @@ describe(EntityMutatorFactory_1.default, () => {
482
523
  },
483
524
  ]);
484
525
  const entites1 = await (0, entityUtils_1.enforceResultsAsync)(entityLoaderFactory
485
- .forLoad(viewerContext, queryContext)
526
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
486
527
  .loadManyByFieldEqualingAsync('stringField', 'huh'));
487
528
  expect(entites1).toHaveLength(1);
488
529
  await (0, results_1.enforceAsyncResult)(entityMutatorFactory
489
- .forCreate(viewerContext, queryContext)
530
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
490
531
  .setField('stringField', 'huh')
491
532
  .createAsync());
492
533
  const entities2 = await (0, entityUtils_1.enforceResultsAsync)(entityLoaderFactory
493
- .forLoad(viewerContext, queryContext)
534
+ .forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)
494
535
  .loadManyByFieldEqualingAsync('stringField', 'huh'));
495
536
  expect(entities2).toHaveLength(2);
496
537
  });
497
538
  it('throws error when field not valid', async () => {
498
539
  const viewerContext = (0, ts_mockito_1.mock)();
540
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
499
541
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
500
542
  const id1 = (0, uuid_1.v4)();
501
543
  const { entityMutatorFactory } = createEntityMutatorFactory([
@@ -509,32 +551,33 @@ describe(EntityMutatorFactory_1.default, () => {
509
551
  },
510
552
  ]);
511
553
  await expect(entityMutatorFactory
512
- .forCreate(viewerContext, queryContext)
554
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
513
555
  .setField('stringField', 10)
514
556
  .createAsync()).rejects.toThrowError('Entity field not valid: TestEntity (stringField = 10)');
515
557
  const createdEntity = await entityMutatorFactory
516
- .forCreate(viewerContext, queryContext)
558
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
517
559
  .setField('stringField', 'hello')
518
560
  .enforceCreateAsync();
519
561
  await expect(entityMutatorFactory
520
- .forUpdate(createdEntity, queryContext)
562
+ .forUpdate(createdEntity, queryContext, privacyPolicyEvaluationContext)
521
563
  .setField('stringField', 10)
522
564
  .updateAsync()).rejects.toThrowError('Entity field not valid: TestEntity (stringField = 10)');
523
565
  });
524
566
  it('returns error result when not authorized to create', async () => {
525
567
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
568
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
526
569
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
527
570
  const privacyPolicyMock = (0, ts_mockito_1.mock)(SimpleTestEntity_1.SimpleTestEntityPrivacyPolicy);
528
571
  const databaseAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
529
572
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
530
573
  const entityLoaderFactory = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityLoaderFactory_1.default));
531
574
  const rejectionError = new Error();
532
- (0, ts_mockito_1.when)(privacyPolicyMock.authorizeCreateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
533
- (0, ts_mockito_1.when)(privacyPolicyMock.authorizeUpdateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
534
- (0, ts_mockito_1.when)(privacyPolicyMock.authorizeDeleteAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
575
+ (0, ts_mockito_1.when)(privacyPolicyMock.authorizeCreateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
576
+ (0, ts_mockito_1.when)(privacyPolicyMock.authorizeUpdateAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
577
+ (0, ts_mockito_1.when)(privacyPolicyMock.authorizeDeleteAsync(viewerContext, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anyOfClass)(SimpleTestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
535
578
  const entityMutatorFactory = new EntityMutatorFactory_1.default(SimpleTestEntity_1.simpleTestEntityConfiguration, SimpleTestEntity_1.default, (0, ts_mockito_1.instance)(privacyPolicyMock), [], {}, entityLoaderFactory, databaseAdapter, metricsAdapter);
536
579
  const entityCreateResult = await entityMutatorFactory
537
- .forCreate(viewerContext, queryContext)
580
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
538
581
  .createAsync();
539
582
  expect(entityCreateResult.ok).toBe(false);
540
583
  expect(entityCreateResult.reason).toEqual(rejectionError);
@@ -544,13 +587,13 @@ describe(EntityMutatorFactory_1.default, () => {
544
587
  id: id1,
545
588
  });
546
589
  const entityUpdateResult = await entityMutatorFactory
547
- .forUpdate(fakeEntity, queryContext)
590
+ .forUpdate(fakeEntity, queryContext, privacyPolicyEvaluationContext)
548
591
  .updateAsync();
549
592
  expect(entityUpdateResult.ok).toBe(false);
550
593
  expect(entityUpdateResult.reason).toEqual(rejectionError);
551
594
  expect(entityUpdateResult.value).toBe(undefined);
552
595
  const entityDeleteResult = await entityMutatorFactory
553
- .forDelete(fakeEntity, queryContext)
596
+ .forDelete(fakeEntity, queryContext, privacyPolicyEvaluationContext)
554
597
  .deleteAsync();
555
598
  expect(entityDeleteResult.ok).toBe(false);
556
599
  expect(entityDeleteResult.reason).toEqual(rejectionError);
@@ -558,6 +601,7 @@ describe(EntityMutatorFactory_1.default, () => {
558
601
  });
559
602
  it('throws error when db adapter throws', async () => {
560
603
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
604
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
561
605
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
562
606
  const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(SimpleTestEntity_1.SimpleTestEntityPrivacyPolicy));
563
607
  const databaseAdapterMock = (0, ts_mockito_1.mock)();
@@ -572,24 +616,33 @@ describe(EntityMutatorFactory_1.default, () => {
572
616
  const fakeEntity = new SimpleTestEntity_1.default(viewerContext, {
573
617
  id: id1,
574
618
  });
575
- await expect(entityMutatorFactory.forCreate(viewerContext, queryContext).createAsync()).rejects.toEqual(rejectionError);
576
- await expect(entityMutatorFactory.forUpdate(fakeEntity, queryContext).updateAsync()).rejects.toEqual(rejectionError);
577
- await expect(entityMutatorFactory.forDelete(fakeEntity, queryContext).deleteAsync()).rejects.toEqual(rejectionError);
619
+ await expect(entityMutatorFactory
620
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
621
+ .createAsync()).rejects.toEqual(rejectionError);
622
+ await expect(entityMutatorFactory
623
+ .forUpdate(fakeEntity, queryContext, privacyPolicyEvaluationContext)
624
+ .updateAsync()).rejects.toEqual(rejectionError);
625
+ await expect(entityMutatorFactory
626
+ .forDelete(fakeEntity, queryContext, privacyPolicyEvaluationContext)
627
+ .deleteAsync()).rejects.toEqual(rejectionError);
578
628
  });
579
629
  it('records metrics appropriately', async () => {
580
630
  const viewerContext = (0, ts_mockito_1.mock)();
631
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
581
632
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
582
633
  const { entityMutatorFactory, metricsAdapter } = createEntityMutatorFactory([]);
583
634
  const spiedMetricsAdapter = (0, ts_mockito_1.spy)(metricsAdapter);
584
635
  const newEntity = await (0, results_1.enforceAsyncResult)(entityMutatorFactory
585
- .forCreate(viewerContext, queryContext)
636
+ .forCreate(viewerContext, queryContext, privacyPolicyEvaluationContext)
586
637
  .setField('stringField', 'huh')
587
638
  .createAsync());
588
639
  await (0, results_1.enforceAsyncResult)(entityMutatorFactory
589
- .forUpdate(newEntity, queryContext)
640
+ .forUpdate(newEntity, queryContext, privacyPolicyEvaluationContext)
590
641
  .setField('stringField', 'wat')
591
642
  .updateAsync());
592
- await (0, results_1.enforceAsyncResult)(entityMutatorFactory.forDelete(newEntity, queryContext).deleteAsync());
643
+ await (0, results_1.enforceAsyncResult)(entityMutatorFactory
644
+ .forDelete(newEntity, queryContext, privacyPolicyEvaluationContext)
645
+ .deleteAsync());
593
646
  (0, ts_mockito_1.verify)(spiedMetricsAdapter.logMutatorMutationEvent((0, ts_mockito_1.objectContaining)({
594
647
  type: IEntityMetricsAdapter_1.EntityMetricsMutationType.CREATE,
595
648
  entityClassName: TestEntity_1.default.name,