@expo/entity 0.22.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 (145) 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/EntityCacheAdapter.d.ts +2 -9
  12. package/build/EntityCacheAdapter.js.map +1 -1
  13. package/build/EntityFieldDefinition.d.ts +8 -0
  14. package/build/EntityFieldDefinition.js +5 -0
  15. package/build/EntityFieldDefinition.js.map +1 -1
  16. package/build/EntityFields.d.ts +38 -0
  17. package/build/EntityFields.js +38 -0
  18. package/build/EntityFields.js.map +1 -1
  19. package/build/EntityLoader.d.ts +3 -2
  20. package/build/EntityLoader.js +5 -4
  21. package/build/EntityLoader.js.map +1 -1
  22. package/build/EntityLoaderFactory.d.ts +2 -2
  23. package/build/EntityLoaderFactory.js +2 -2
  24. package/build/EntityLoaderFactory.js.map +1 -1
  25. package/build/EntityMutationInfo.d.ts +12 -3
  26. package/build/EntityMutator.d.ts +5 -4
  27. package/build/EntityMutator.js +31 -24
  28. package/build/EntityMutator.js.map +1 -1
  29. package/build/EntityMutatorFactory.d.ts +4 -4
  30. package/build/EntityMutatorFactory.js +6 -6
  31. package/build/EntityMutatorFactory.js.map +1 -1
  32. package/build/EntityPrivacyPolicy.d.ts +15 -4
  33. package/build/EntityPrivacyPolicy.js +14 -14
  34. package/build/EntityPrivacyPolicy.js.map +1 -1
  35. package/build/GenericSecondaryEntityCache.d.ts +19 -0
  36. package/build/GenericSecondaryEntityCache.js +74 -0
  37. package/build/GenericSecondaryEntityCache.js.map +1 -0
  38. package/build/IEntityGenericCacher.d.ts +11 -0
  39. package/build/IEntityGenericCacher.js +3 -0
  40. package/build/IEntityGenericCacher.js.map +1 -0
  41. package/build/ReadonlyEntity.js +1 -1
  42. package/build/ReadonlyEntity.js.map +1 -1
  43. package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
  44. package/build/ViewerScopedEntityLoaderFactory.js +2 -2
  45. package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
  46. package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
  47. package/build/ViewerScopedEntityMutatorFactory.js +6 -6
  48. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  49. package/build/__tests__/ComposedCacheAdapter-test.d.ts +1 -0
  50. package/build/__tests__/ComposedCacheAdapter-test.js +198 -0
  51. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -0
  52. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +1 -0
  53. package/build/__tests__/ComposedSecondaryEntityCache-test.js +65 -0
  54. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +1 -0
  55. package/build/__tests__/EntityCommonUseCases-test.js +1 -1
  56. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  57. package/build/__tests__/EntityEdges-test.js +260 -37
  58. package/build/__tests__/EntityEdges-test.js.map +1 -1
  59. package/build/__tests__/EntityLoader-constructor-test.js +2 -1
  60. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  61. package/build/__tests__/EntityLoader-test.js +19 -11
  62. package/build/__tests__/EntityLoader-test.js.map +1 -1
  63. package/build/__tests__/EntityMutator-test.js +96 -43
  64. package/build/__tests__/EntityMutator-test.js.map +1 -1
  65. package/build/__tests__/EntityPrivacyPolicy-test.js +23 -12
  66. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  67. package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -1
  68. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  69. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +3 -2
  70. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
  71. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +3 -2
  72. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
  73. package/build/index.d.ts +2 -0
  74. package/build/index.js +3 -1
  75. package/build/index.js.map +1 -1
  76. package/build/internal/ReadThroughEntityCache.d.ts +2 -3
  77. package/build/internal/ReadThroughEntityCache.js +2 -6
  78. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  79. package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -32
  80. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  81. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -1
  82. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +1 -1
  83. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  84. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -1
  85. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +1 -1
  86. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  87. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -1
  88. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +1 -1
  89. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  90. package/build/rules/PrivacyPolicyRule.d.ts +2 -1
  91. package/build/rules/PrivacyPolicyRule.js.map +1 -1
  92. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +1 -0
  93. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
  94. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +1 -0
  95. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
  96. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +1 -0
  97. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
  98. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +2 -0
  99. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +6 -6
  100. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
  101. package/build/utils/testing/StubCacheAdapter.d.ts +6 -9
  102. package/build/utils/testing/StubCacheAdapter.js +0 -6
  103. package/build/utils/testing/StubCacheAdapter.js.map +1 -1
  104. package/package.json +1 -1
  105. package/src/ComposedEntityCacheAdapter.ts +86 -0
  106. package/src/ComposedSecondaryEntityCache.ts +63 -0
  107. package/src/Entity.ts +6 -4
  108. package/src/EntityAssociationLoader.ts +4 -4
  109. package/src/EntityCacheAdapter.ts +2 -10
  110. package/src/EntityFieldDefinition.ts +8 -0
  111. package/src/EntityFields.ts +45 -0
  112. package/src/EntityLoader.ts +5 -1
  113. package/src/EntityLoaderFactory.ts +4 -2
  114. package/src/EntityMutationInfo.ts +13 -3
  115. package/src/EntityMutator.ts +44 -21
  116. package/src/EntityMutatorFactory.ts +10 -4
  117. package/src/EntityPrivacyPolicy.ts +31 -1
  118. package/src/GenericSecondaryEntityCache.ts +98 -0
  119. package/src/IEntityGenericCacher.ts +15 -0
  120. package/src/ReadonlyEntity.ts +1 -1
  121. package/src/ViewerScopedEntityLoaderFactory.ts +8 -3
  122. package/src/ViewerScopedEntityMutatorFactory.ts +22 -7
  123. package/src/__tests__/ComposedCacheAdapter-test.ts +280 -0
  124. package/src/__tests__/ComposedSecondaryEntityCache-test.ts +101 -0
  125. package/src/__tests__/EntityCommonUseCases-test.ts +2 -1
  126. package/src/__tests__/EntityEdges-test.ts +286 -45
  127. package/src/__tests__/EntityLoader-constructor-test.ts +3 -1
  128. package/src/__tests__/EntityLoader-test.ts +26 -1
  129. package/src/__tests__/EntityMutator-test.ts +99 -37
  130. package/src/__tests__/EntityPrivacyPolicy-test.ts +66 -7
  131. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +1 -0
  132. package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +4 -2
  133. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +6 -2
  134. package/src/index.ts +2 -0
  135. package/src/internal/ReadThroughEntityCache.ts +6 -28
  136. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +0 -44
  137. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +2 -0
  138. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +2 -0
  139. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +2 -0
  140. package/src/rules/PrivacyPolicyRule.ts +2 -0
  141. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +2 -0
  142. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +2 -0
  143. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +2 -0
  144. package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +14 -6
  145. package/src/utils/testing/StubCacheAdapter.ts +11 -17
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -10,35 +29,68 @@ const EntityFieldDefinition_1 = require("../EntityFieldDefinition");
10
29
  const EntityFields_1 = require("../EntityFields");
11
30
  const EntityMutationInfo_1 = require("../EntityMutationInfo");
12
31
  const EntityMutationTriggerConfiguration_1 = require("../EntityMutationTriggerConfiguration");
13
- const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
32
+ const EntityPrivacyPolicy_1 = __importStar(require("../EntityPrivacyPolicy"));
14
33
  const ReadThroughEntityCache_1 = require("../internal/ReadThroughEntityCache");
15
- const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysAllowPrivacyPolicyRule"));
34
+ const PrivacyPolicyRule_1 = __importStar(require("../rules/PrivacyPolicyRule"));
16
35
  const TestViewerContext_1 = __importDefault(require("../testfixtures/TestViewerContext"));
17
36
  const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
18
- class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
19
- constructor() {
20
- super(...arguments);
21
- this.readRules = [
22
- new AlwaysAllowPrivacyPolicyRule_1.default(),
23
- ];
24
- this.createRules = [
25
- new AlwaysAllowPrivacyPolicyRule_1.default(),
26
- ];
27
- this.updateRules = [
28
- new AlwaysAllowPrivacyPolicyRule_1.default(),
29
- ];
30
- this.deleteRules = [
31
- new AlwaysAllowPrivacyPolicyRule_1.default(),
32
- ];
33
- }
34
- }
35
37
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
36
38
  const makeEntityClasses = (edgeDeletionBehavior) => {
37
39
  const triggerExecutionCounts = {
38
- parent: 0,
39
- child: 0,
40
- grandchild: 0,
40
+ ParentEntity: 0,
41
+ ChildEntity: 0,
42
+ GrandChildEntity: 0,
43
+ };
44
+ const privacyPolicyEvaluationRecords = {
45
+ shouldRecord: false,
46
+ ParentEntity: {
47
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
48
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
49
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
50
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [],
51
+ },
52
+ ChildEntity: {
53
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
54
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
55
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
56
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [],
57
+ },
58
+ GrandChildEntity: {
59
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
60
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
61
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
62
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [],
63
+ },
41
64
  };
65
+ class AlwaysAllowPrivacyPolicyRuleThatRecords extends PrivacyPolicyRule_1.default {
66
+ constructor(action) {
67
+ super();
68
+ this.action = action;
69
+ }
70
+ async evaluateAsync(_viewerContext, _queryContext, evaluationContext, entity) {
71
+ if (privacyPolicyEvaluationRecords.shouldRecord) {
72
+ privacyPolicyEvaluationRecords[entity.constructor.name][this.action].push(evaluationContext);
73
+ }
74
+ return PrivacyPolicyRule_1.RuleEvaluationResult.ALLOW;
75
+ }
76
+ }
77
+ class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
78
+ constructor() {
79
+ super(...arguments);
80
+ this.readRules = [
81
+ new AlwaysAllowPrivacyPolicyRuleThatRecords(EntityPrivacyPolicy_1.EntityAuthorizationAction.READ),
82
+ ];
83
+ this.createRules = [
84
+ new AlwaysAllowPrivacyPolicyRuleThatRecords(EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE),
85
+ ];
86
+ this.updateRules = [
87
+ new AlwaysAllowPrivacyPolicyRuleThatRecords(EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE),
88
+ ];
89
+ this.deleteRules = [
90
+ new AlwaysAllowPrivacyPolicyRuleThatRecords(EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE),
91
+ ];
92
+ }
93
+ }
42
94
  class ParentCheckInfoTrigger extends EntityMutationTriggerConfiguration_1.EntityMutationTrigger {
43
95
  async executeAsync(_viewerContext, _queryContext, _entity, mutationInfo) {
44
96
  if (mutationInfo.type !== EntityMutationInfo_1.EntityMutationType.DELETE) {
@@ -47,7 +99,7 @@ const makeEntityClasses = (edgeDeletionBehavior) => {
47
99
  if (mutationInfo.cascadingDeleteCause !== null) {
48
100
  throw new Error('Parent entity should not have casade delete cause');
49
101
  }
50
- triggerExecutionCounts.parent++;
102
+ triggerExecutionCounts.ParentEntity++;
51
103
  }
52
104
  }
53
105
  class ChildCheckInfoTrigger extends EntityMutationTriggerConfiguration_1.EntityMutationTrigger {
@@ -66,7 +118,7 @@ const makeEntityClasses = (edgeDeletionBehavior) => {
66
118
  if (secondLevelCascadingDeleteCause) {
67
119
  throw new Error('Child entity should not have two-level casade delete cause');
68
120
  }
69
- triggerExecutionCounts.child++;
121
+ triggerExecutionCounts.ChildEntity++;
70
122
  }
71
123
  }
72
124
  class GrandChildCheckInfoTrigger extends EntityMutationTriggerConfiguration_1.EntityMutationTrigger {
@@ -93,7 +145,7 @@ const makeEntityClasses = (edgeDeletionBehavior) => {
93
145
  if (thirdLevelCascadingDeleteCause) {
94
146
  throw new Error('GrandChild entity should not have three-level casade delete cause');
95
147
  }
96
- triggerExecutionCounts.grandchild++;
148
+ triggerExecutionCounts.GrandChildEntity++;
97
149
  }
98
150
  }
99
151
  class ParentEntity extends Entity_1.default {
@@ -197,12 +249,13 @@ const makeEntityClasses = (edgeDeletionBehavior) => {
197
249
  ChildEntity,
198
250
  GrandChildEntity,
199
251
  triggerExecutionCounts,
252
+ privacyPolicyEvaluationRecords,
200
253
  };
201
254
  };
202
255
  describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
203
256
  describe('EntityEdgeDeletionBehavior.CASCADE_DELETE', () => {
204
257
  it('deletes', async () => {
205
- const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE);
258
+ const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts, privacyPolicyEvaluationRecords, } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE);
206
259
  const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
207
260
  const viewerContext = new TestViewerContext_1.default(companionProvider);
208
261
  const parent = await ParentEntity.creator(viewerContext).enforceCreateAsync();
@@ -215,21 +268,82 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
215
268
  await expect(ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID())).resolves.not.toBeNull();
216
269
  await expect(ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID())).resolves.not.toBeNull();
217
270
  await expect(GrandChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(grandchild.getID())).resolves.not.toBeNull();
271
+ privacyPolicyEvaluationRecords.shouldRecord = true;
218
272
  await ParentEntity.enforceDeleteAsync(parent);
273
+ privacyPolicyEvaluationRecords.shouldRecord = false;
219
274
  await expect(ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID())).resolves.toBeNull();
220
275
  await expect(ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID())).resolves.toBeNull();
221
276
  await expect(GrandChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(grandchild.getID())).resolves.toBeNull();
222
277
  // two calls for each trigger, one beforeDelete, one afterDelete
223
278
  expect(triggerExecutionCounts).toMatchObject({
224
- parent: 2,
225
- child: 2,
226
- grandchild: 2,
279
+ ParentEntity: 2,
280
+ ChildEntity: 2,
281
+ GrandChildEntity: 2,
282
+ });
283
+ expect(privacyPolicyEvaluationRecords).toMatchObject({
284
+ ParentEntity: {
285
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
286
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
287
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
288
+ // one DELETE auth action for parent (since it's being deleted)
289
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [{ cascadingDeleteCause: null }],
290
+ },
291
+ ChildEntity: {
292
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
293
+ // one READ auth action for child in order to delete via cascade
294
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [
295
+ {
296
+ cascadingDeleteCause: {
297
+ entity: expect.any(ParentEntity),
298
+ cascadingDeleteCause: null,
299
+ },
300
+ },
301
+ ],
302
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
303
+ // one DELETE auth action for child (since it's being deleted via cascade)
304
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [
305
+ {
306
+ cascadingDeleteCause: {
307
+ entity: expect.any(ParentEntity),
308
+ cascadingDeleteCause: null,
309
+ },
310
+ },
311
+ ],
312
+ },
313
+ GrandChildEntity: {
314
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
315
+ // one READ auth action for grandchild in order to delete via cascade
316
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [
317
+ {
318
+ cascadingDeleteCause: {
319
+ entity: expect.any(ChildEntity),
320
+ cascadingDeleteCause: {
321
+ entity: expect.any(ParentEntity),
322
+ cascadingDeleteCause: null,
323
+ },
324
+ },
325
+ },
326
+ ],
327
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
328
+ // one DELETE auth action for grandchild (since it's being deleted via cascade)
329
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [
330
+ {
331
+ cascadingDeleteCause: {
332
+ entity: expect.any(ChildEntity),
333
+ cascadingDeleteCause: {
334
+ entity: expect.any(ParentEntity),
335
+ cascadingDeleteCause: null,
336
+ },
337
+ },
338
+ },
339
+ ],
340
+ },
227
341
  });
228
342
  });
229
343
  });
230
344
  describe('EntityEdgeDeletionBehavior.SET_NULL', () => {
231
345
  it('sets null', async () => {
232
- const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL);
346
+ const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts, privacyPolicyEvaluationRecords, } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL);
233
347
  const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
234
348
  const viewerContext = new TestViewerContext_1.default(companionProvider);
235
349
  const parent = await ParentEntity.creator(viewerContext).enforceCreateAsync();
@@ -242,7 +356,9 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
242
356
  await expect(ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID())).resolves.not.toBeNull();
243
357
  await expect(ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID())).resolves.not.toBeNull();
244
358
  await expect(GrandChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(grandchild.getID())).resolves.not.toBeNull();
359
+ privacyPolicyEvaluationRecords.shouldRecord = true;
245
360
  await ParentEntity.enforceDeleteAsync(parent);
361
+ privacyPolicyEvaluationRecords.shouldRecord = false;
246
362
  await expect(ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID())).resolves.toBeNull();
247
363
  const loadedChild = await ChildEntity.loader(viewerContext)
248
364
  .enforcing()
@@ -255,16 +371,62 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
255
371
  // two calls for only parent trigger, one beforeDelete, one afterDelete
256
372
  // when using set null the descendants aren't deleted
257
373
  expect(triggerExecutionCounts).toMatchObject({
258
- parent: 2,
259
- child: 0,
260
- grandchild: 0,
374
+ ParentEntity: 2,
375
+ ChildEntity: 0,
376
+ GrandChildEntity: 0,
377
+ });
378
+ expect(privacyPolicyEvaluationRecords).toMatchObject({
379
+ ParentEntity: {
380
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
381
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
382
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
383
+ // one DELETE auth action for parent (since it's being deleted)
384
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [{ cascadingDeleteCause: null }],
385
+ },
386
+ ChildEntity: {
387
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
388
+ // two READs auth action for Child during parent deletion:
389
+ // 1. Read to initiate the SET_NULL (to update the entity)
390
+ // 1. Read automatically post-update
391
+ // no other entities are read since it is not cascaded past first entity
392
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [
393
+ {
394
+ cascadingDeleteCause: {
395
+ entity: expect.any(ParentEntity),
396
+ cascadingDeleteCause: null,
397
+ },
398
+ },
399
+ {
400
+ cascadingDeleteCause: {
401
+ entity: expect.any(ParentEntity),
402
+ cascadingDeleteCause: null,
403
+ },
404
+ },
405
+ ],
406
+ // one UPDATE to set null
407
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [
408
+ {
409
+ cascadingDeleteCause: {
410
+ entity: expect.any(ParentEntity),
411
+ cascadingDeleteCause: null,
412
+ },
413
+ },
414
+ ],
415
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [],
416
+ },
417
+ GrandChildEntity: {
418
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
419
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
420
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
421
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [],
422
+ },
261
423
  });
262
424
  });
263
425
  });
264
426
  describe('EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE', () => {
265
427
  it('invalidates the cache', async () => {
266
428
  var _a, _b, _c, _d;
267
- const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE);
429
+ const { ParentEntity, ChildEntity, GrandChildEntity, triggerExecutionCounts, privacyPolicyEvaluationRecords, } = makeEntityClasses(EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE);
268
430
  const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
269
431
  const viewerContext = new TestViewerContext_1.default(companionProvider);
270
432
  const parent = await ParentEntity.creator(viewerContext).enforceCreateAsync();
@@ -291,7 +453,9 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
291
453
  child.getID(),
292
454
  ]);
293
455
  expect((_b = grandChildCachedBefore.get(child.getID())) === null || _b === void 0 ? void 0 : _b.status).toEqual(ReadThroughEntityCache_1.CacheStatus.HIT);
456
+ privacyPolicyEvaluationRecords.shouldRecord = true;
294
457
  await ParentEntity.enforceDeleteAsync(parent);
458
+ privacyPolicyEvaluationRecords.shouldRecord = false;
295
459
  const childCachedAfter = await childCacheAdapter.loadManyAsync('parent_id', [parent.getID()]);
296
460
  expect((_c = childCachedAfter.get(parent.getID())) === null || _c === void 0 ? void 0 : _c.status).toEqual(ReadThroughEntityCache_1.CacheStatus.MISS);
297
461
  const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync('parent_id', [
@@ -303,9 +467,68 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
303
467
  await expect(GrandChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(grandchild.getID())).resolves.not.toBeNull();
304
468
  // two calls for each trigger, one beforeDelete, one afterDelete
305
469
  expect(triggerExecutionCounts).toMatchObject({
306
- parent: 2,
307
- child: 2,
308
- grandchild: 2,
470
+ ParentEntity: 2,
471
+ ChildEntity: 2,
472
+ GrandChildEntity: 2,
473
+ });
474
+ expect(privacyPolicyEvaluationRecords).toMatchObject({
475
+ ParentEntity: {
476
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
477
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [],
478
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
479
+ // one DELETE auth action for parent (since it's being deleted)
480
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [{ cascadingDeleteCause: null }],
481
+ },
482
+ ChildEntity: {
483
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
484
+ // one READ auth action for child in order to delete via cascade
485
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [
486
+ {
487
+ cascadingDeleteCause: {
488
+ entity: expect.any(ParentEntity),
489
+ cascadingDeleteCause: null,
490
+ },
491
+ },
492
+ ],
493
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
494
+ // one DELETE auth action for child (since it's being deleted via cascade)
495
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [
496
+ {
497
+ cascadingDeleteCause: {
498
+ entity: expect.any(ParentEntity),
499
+ cascadingDeleteCause: null,
500
+ },
501
+ },
502
+ ],
503
+ },
504
+ GrandChildEntity: {
505
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE]: [],
506
+ // one READ auth action for grandchild in order to delete via cascade
507
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.READ]: [
508
+ {
509
+ cascadingDeleteCause: {
510
+ entity: expect.any(ChildEntity),
511
+ cascadingDeleteCause: {
512
+ entity: expect.any(ParentEntity),
513
+ cascadingDeleteCause: null,
514
+ },
515
+ },
516
+ },
517
+ ],
518
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.UPDATE]: [],
519
+ // one DELETE auth action for grandchild (since it's being deleted via cascade)
520
+ [EntityPrivacyPolicy_1.EntityAuthorizationAction.DELETE]: [
521
+ {
522
+ cascadingDeleteCause: {
523
+ entity: expect.any(ChildEntity),
524
+ cascadingDeleteCause: {
525
+ entity: expect.any(ParentEntity),
526
+ cascadingDeleteCause: null,
527
+ },
528
+ },
529
+ },
530
+ ],
531
+ },
309
532
  });
310
533
  });
311
534
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityEdges-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityEdges-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityEdges-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityEdges-test.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,7 @@ exports.testEntityCompanion = new EntityCompanionProvider_1.EntityCompanionDefin
73
73
  describe(EntityLoader_1.default, () => {
74
74
  it('handles thrown errors and literals from constructor', async () => {
75
75
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
76
+ const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
76
77
  const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
77
78
  const queryContext = StubQueryContextProvider_1.default.getQueryContext();
78
79
  const databaseAdapter = new StubDatabaseAdapter_1.default(exports.testEntityConfiguration, StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(exports.testEntityConfiguration, new Map([
@@ -93,7 +94,7 @@ describe(EntityLoader_1.default, () => {
93
94
  const cacheAdapter = cacheAdapterProvider.getCacheAdapter(exports.testEntityConfiguration);
94
95
  const entityCache = new ReadThroughEntityCache_1.default(exports.testEntityConfiguration, cacheAdapter);
95
96
  const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, metricsAdapter, TestEntity.name);
96
- const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, exports.testEntityConfiguration, TestEntity, privacyPolicy, dataManager, metricsAdapter);
97
+ const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, privacyPolicyEvaluationContext, exports.testEntityConfiguration, TestEntity, privacyPolicy, dataManager, metricsAdapter);
97
98
  let capturedThrownThing1;
98
99
  try {
99
100
  await entityLoader.loadByIDAsync(ID_SENTINEL_THROW_LITERAL);
@@ -1 +1 @@
1
- {"version":3,"file":"EntityLoader-constructor-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-constructor-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityLoader-constructor-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-constructor-test.ts"],"names":[],"mappings":"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"}