@expo/entity 0.46.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/build/src/AuthorizationResultBasedEntityMutator.d.ts +5 -3
  2. package/build/src/AuthorizationResultBasedEntityMutator.js +75 -37
  3. package/build/src/AuthorizationResultBasedEntityMutator.js.map +1 -1
  4. package/build/src/EntityDeleter.js +1 -1
  5. package/build/src/EntityDeleter.js.map +1 -1
  6. package/build/src/EntityFields.d.ts +7 -0
  7. package/build/src/EntityFields.js +11 -1
  8. package/build/src/EntityFields.js.map +1 -1
  9. package/build/src/EntityMutatorFactory.d.ts +3 -2
  10. package/build/src/EntityMutatorFactory.js +4 -4
  11. package/build/src/EntityMutatorFactory.js.map +1 -1
  12. package/build/src/EntityUpdater.js +1 -1
  13. package/build/src/EntityUpdater.js.map +1 -1
  14. package/build/src/ViewerScopedEntityMutatorFactory.d.ts +3 -2
  15. package/build/src/ViewerScopedEntityMutatorFactory.js +4 -4
  16. package/build/src/ViewerScopedEntityMutatorFactory.js.map +1 -1
  17. package/package.json +5 -3
  18. package/src/AuthorizationResultBasedEntityMutator.ts +63 -49
  19. package/src/EntityDeleter.ts +1 -1
  20. package/src/EntityFields.ts +13 -0
  21. package/src/EntityMutatorFactory.ts +5 -0
  22. package/src/EntityUpdater.ts +1 -1
  23. package/src/ViewerScopedEntityMutatorFactory.ts +5 -2
  24. package/src/__tests__/EntityFields-test.ts +7 -0
  25. package/src/__tests__/EntityMutator-test.ts +217 -16
  26. package/LICENSE +0 -21
  27. package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
  28. package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -240
  29. package/build/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
  30. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
  31. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -109
  32. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
  33. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
  34. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -590
  35. package/build/src/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
  36. package/build/src/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
  37. package/build/src/__tests__/ComposedCacheAdapter-test.js +0 -259
  38. package/build/src/__tests__/ComposedCacheAdapter-test.js.map +0 -1
  39. package/build/src/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
  40. package/build/src/__tests__/ComposedSecondaryEntityCache-test.js +0 -67
  41. package/build/src/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
  42. package/build/src/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
  43. package/build/src/__tests__/EnforcingEntityAssociationLoader-test.js +0 -113
  44. package/build/src/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
  45. package/build/src/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
  46. package/build/src/__tests__/EnforcingEntityLoader-test.js +0 -316
  47. package/build/src/__tests__/EnforcingEntityLoader-test.js.map +0 -1
  48. package/build/src/__tests__/Entity-test.d.ts +0 -1
  49. package/build/src/__tests__/Entity-test.js +0 -92
  50. package/build/src/__tests__/Entity-test.js.map +0 -1
  51. package/build/src/__tests__/EntityAssociationLoader-test.d.ts +0 -1
  52. package/build/src/__tests__/EntityAssociationLoader-test.js +0 -28
  53. package/build/src/__tests__/EntityAssociationLoader-test.js.map +0 -1
  54. package/build/src/__tests__/EntityCommonUseCases-test.d.ts +0 -1
  55. package/build/src/__tests__/EntityCommonUseCases-test.js +0 -111
  56. package/build/src/__tests__/EntityCommonUseCases-test.js.map +0 -1
  57. package/build/src/__tests__/EntityCompanion-test.d.ts +0 -1
  58. package/build/src/__tests__/EntityCompanion-test.js +0 -42
  59. package/build/src/__tests__/EntityCompanion-test.js.map +0 -1
  60. package/build/src/__tests__/EntityCompanionProvider-test.d.ts +0 -1
  61. package/build/src/__tests__/EntityCompanionProvider-test.js +0 -53
  62. package/build/src/__tests__/EntityCompanionProvider-test.js.map +0 -1
  63. package/build/src/__tests__/EntityConfiguration-test.d.ts +0 -1
  64. package/build/src/__tests__/EntityConfiguration-test.js +0 -164
  65. package/build/src/__tests__/EntityConfiguration-test.js.map +0 -1
  66. package/build/src/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
  67. package/build/src/__tests__/EntityDatabaseAdapter-test.js +0 -189
  68. package/build/src/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
  69. package/build/src/__tests__/EntityEdges-test.d.ts +0 -1
  70. package/build/src/__tests__/EntityEdges-test.js +0 -680
  71. package/build/src/__tests__/EntityEdges-test.js.map +0 -1
  72. package/build/src/__tests__/EntityFields-test.d.ts +0 -1
  73. package/build/src/__tests__/EntityFields-test.js +0 -61
  74. package/build/src/__tests__/EntityFields-test.js.map +0 -1
  75. package/build/src/__tests__/EntityLoader-test.d.ts +0 -1
  76. package/build/src/__tests__/EntityLoader-test.js +0 -34
  77. package/build/src/__tests__/EntityLoader-test.js.map +0 -1
  78. package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
  79. package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -71
  80. package/build/src/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
  81. package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.d.ts +0 -1
  82. package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.js +0 -54
  83. package/build/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.js.map +0 -1
  84. package/build/src/__tests__/EntityMutator-test.d.ts +0 -1
  85. package/build/src/__tests__/EntityMutator-test.js +0 -721
  86. package/build/src/__tests__/EntityMutator-test.js.map +0 -1
  87. package/build/src/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
  88. package/build/src/__tests__/EntityPrivacyPolicy-test.js +0 -429
  89. package/build/src/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
  90. package/build/src/__tests__/EntityQueryContext-test.d.ts +0 -1
  91. package/build/src/__tests__/EntityQueryContext-test.js +0 -181
  92. package/build/src/__tests__/EntityQueryContext-test.js.map +0 -1
  93. package/build/src/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
  94. package/build/src/__tests__/EntitySecondaryCacheLoader-test.js +0 -58
  95. package/build/src/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
  96. package/build/src/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
  97. package/build/src/__tests__/EntitySelfReferentialEdges-test.js +0 -196
  98. package/build/src/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
  99. package/build/src/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
  100. package/build/src/__tests__/GenericEntityCacheAdapter-test.js +0 -95
  101. package/build/src/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
  102. package/build/src/__tests__/ReadonlyEntity-test.d.ts +0 -1
  103. package/build/src/__tests__/ReadonlyEntity-test.js +0 -209
  104. package/build/src/__tests__/ReadonlyEntity-test.js.map +0 -1
  105. package/build/src/__tests__/ViewerContext-test.d.ts +0 -1
  106. package/build/src/__tests__/ViewerContext-test.js +0 -28
  107. package/build/src/__tests__/ViewerContext-test.js.map +0 -1
  108. package/build/src/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
  109. package/build/src/__tests__/ViewerScopedEntityCompanion-test.js +0 -18
  110. package/build/src/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
  111. package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
  112. package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -18
  113. package/build/src/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
  114. package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
  115. package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -21
  116. package/build/src/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
  117. package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
  118. package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -20
  119. package/build/src/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
  120. package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
  121. package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -121
  122. package/build/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
  123. package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
  124. package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -119
  125. package/build/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
  126. package/build/src/__tests__/entityUtils-test.d.ts +0 -1
  127. package/build/src/__tests__/entityUtils-test.js +0 -88
  128. package/build/src/__tests__/entityUtils-test.js.map +0 -1
  129. package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.d.ts +0 -1
  130. package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.js +0 -21
  131. package/build/src/errors/__tests__/EntityDatabaseAdapterError-test.js.map +0 -1
  132. package/build/src/internal/__tests__/CompositeFieldHolder-test.d.ts +0 -1
  133. package/build/src/internal/__tests__/CompositeFieldHolder-test.js +0 -25
  134. package/build/src/internal/__tests__/CompositeFieldHolder-test.js.map +0 -1
  135. package/build/src/internal/__tests__/CompositeFieldValueMap-test.d.ts +0 -1
  136. package/build/src/internal/__tests__/CompositeFieldValueMap-test.js +0 -40
  137. package/build/src/internal/__tests__/CompositeFieldValueMap-test.js.map +0 -1
  138. package/build/src/internal/__tests__/EntityDataManager-test.d.ts +0 -1
  139. package/build/src/internal/__tests__/EntityDataManager-test.js +0 -666
  140. package/build/src/internal/__tests__/EntityDataManager-test.js.map +0 -1
  141. package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
  142. package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -135
  143. package/build/src/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
  144. package/build/src/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
  145. package/build/src/internal/__tests__/ReadThroughEntityCache-test.js +0 -217
  146. package/build/src/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
  147. package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
  148. package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -18
  149. package/build/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
  150. package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
  151. package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -18
  152. package/build/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
  153. package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
  154. package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -18
  155. package/build/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
  156. package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.d.ts +0 -28
  157. package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.js +0 -53
  158. package/build/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.js.map +0 -1
  159. package/build/src/utils/__testfixtures__/SimpleTestEntity.d.ts +0 -20
  160. package/build/src/utils/__testfixtures__/SimpleTestEntity.js +0 -46
  161. package/build/src/utils/__testfixtures__/SimpleTestEntity.js.map +0 -1
  162. package/build/src/utils/__testfixtures__/StubCacheAdapter.d.ts +0 -29
  163. package/build/src/utils/__testfixtures__/StubCacheAdapter.js +0 -103
  164. package/build/src/utils/__testfixtures__/StubCacheAdapter.js.map +0 -1
  165. package/build/src/utils/__testfixtures__/StubDatabaseAdapter.d.ts +0 -26
  166. package/build/src/utils/__testfixtures__/StubDatabaseAdapter.js +0 -173
  167. package/build/src/utils/__testfixtures__/StubDatabaseAdapter.js.map +0 -1
  168. package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.d.ts +0 -7
  169. package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.js +0 -12
  170. package/build/src/utils/__testfixtures__/StubDatabaseAdapterProvider.js.map +0 -1
  171. package/build/src/utils/__testfixtures__/StubQueryContextProvider.d.ts +0 -7
  172. package/build/src/utils/__testfixtures__/StubQueryContextProvider.js +0 -17
  173. package/build/src/utils/__testfixtures__/StubQueryContextProvider.js.map +0 -1
  174. package/build/src/utils/__testfixtures__/TSMockitoExtensions.d.ts +0 -9
  175. package/build/src/utils/__testfixtures__/TSMockitoExtensions.js +0 -65
  176. package/build/src/utils/__testfixtures__/TSMockitoExtensions.js.map +0 -1
  177. package/build/src/utils/__testfixtures__/TestEntity.d.ts +0 -30
  178. package/build/src/utils/__testfixtures__/TestEntity.js +0 -96
  179. package/build/src/utils/__testfixtures__/TestEntity.js.map +0 -1
  180. package/build/src/utils/__testfixtures__/TestEntity2.d.ts +0 -20
  181. package/build/src/utils/__testfixtures__/TestEntity2.js +0 -49
  182. package/build/src/utils/__testfixtures__/TestEntity2.js.map +0 -1
  183. package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.d.ts +0 -36
  184. package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.js +0 -80
  185. package/build/src/utils/__testfixtures__/TestEntityWithMutationTriggers.js.map +0 -1
  186. package/build/src/utils/__testfixtures__/TestViewerContext.d.ts +0 -3
  187. package/build/src/utils/__testfixtures__/TestViewerContext.js +0 -8
  188. package/build/src/utils/__testfixtures__/TestViewerContext.js.map +0 -1
  189. package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.d.ts +0 -7
  190. package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.js +0 -33
  191. package/build/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.js.map +0 -1
  192. package/build/src/utils/__testfixtures__/describeFieldTestCase.d.ts +0 -2
  193. package/build/src/utils/__testfixtures__/describeFieldTestCase.js +0 -19
  194. package/build/src/utils/__testfixtures__/describeFieldTestCase.js.map +0 -1
  195. package/build/src/utils/__tests__/EntityCreationUtils-test.d.ts +0 -1
  196. package/build/src/utils/__tests__/EntityCreationUtils-test.js +0 -144
  197. package/build/src/utils/__tests__/EntityCreationUtils-test.js.map +0 -1
  198. package/build/src/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
  199. package/build/src/utils/__tests__/EntityPrivacyUtils-test.js +0 -460
  200. package/build/src/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
  201. package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
  202. package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -180
  203. package/build/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
  204. package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
  205. package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -27
  206. package/build/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
  207. package/build/src/utils/collections/__tests__/SerializableKeyMap-test.d.ts +0 -5
  208. package/build/src/utils/collections/__tests__/SerializableKeyMap-test.js +0 -99
  209. package/build/src/utils/collections/__tests__/SerializableKeyMap-test.js.map +0 -1
  210. package/build/src/utils/collections/__tests__/maps-test.d.ts +0 -1
  211. package/build/src/utils/collections/__tests__/maps-test.js +0 -121
  212. package/build/src/utils/collections/__tests__/maps-test.js.map +0 -1
  213. package/build/src/utils/collections/__tests__/sets-test.d.ts +0 -1
  214. package/build/src/utils/collections/__tests__/sets-test.js +0 -19
  215. package/build/src/utils/collections/__tests__/sets-test.js.map +0 -1
  216. package/build/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityDataManager-test.js","sourceRoot":"","sources":["../../../../src/internal/__tests__/EntityDataManager-test.ts"],"names":[],"mappings":"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"}
@@ -1,135 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const EntityConfiguration_1 = require("../../EntityConfiguration");
5
- const EntityFields_1 = require("../../EntityFields");
6
- const EntityFieldTransformationUtils_1 = require("../EntityFieldTransformationUtils");
7
- const blahEntityConfiguration = new EntityConfiguration_1.EntityConfiguration({
8
- idField: 'id',
9
- tableName: 'blah_table',
10
- schema: {
11
- id: new EntityFields_1.UUIDField({
12
- columnName: 'id',
13
- cache: false,
14
- }),
15
- cacheable: new EntityFields_1.StringField({
16
- columnName: 'cacheable',
17
- cache: true,
18
- }),
19
- uniqueButNotCacheable: new EntityFields_1.StringField({
20
- columnName: 'unique_but_not_cacheable',
21
- }),
22
- transformRead: new EntityFields_1.StringField({
23
- columnName: 'transform_read',
24
- }),
25
- transformWrite: new EntityFields_1.StringField({
26
- columnName: 'transform_write',
27
- }),
28
- },
29
- databaseAdapterFlavor: 'postgres',
30
- cacheAdapterFlavor: 'redis',
31
- });
32
- (0, globals_1.describe)(EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField, () => {
33
- (0, globals_1.it)('returns correct mapping', () => {
34
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(blahEntityConfiguration, 'cacheable')).toEqual('cacheable');
35
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(blahEntityConfiguration, 'uniqueButNotCacheable')).toEqual('unique_but_not_cacheable');
36
- });
37
- });
38
- (0, globals_1.describe)(EntityFieldTransformationUtils_1.transformDatabaseObjectToFields, () => {
39
- (0, globals_1.it)('leaves out unknown fields', () => {
40
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(blahEntityConfiguration, new Map(), {
41
- id: 'blah',
42
- unique_but_not_cacheable: 'wat',
43
- who: 'why',
44
- })).toEqual({
45
- id: 'blah',
46
- uniqueButNotCacheable: 'wat',
47
- });
48
- });
49
- (0, globals_1.it)('does field read transformation', () => {
50
- const fieldTransformMap = new Map([
51
- [
52
- EntityFields_1.StringField.name,
53
- {
54
- read: (val) => `${val}-read-transformed`,
55
- },
56
- ],
57
- ]);
58
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(blahEntityConfiguration, fieldTransformMap, {
59
- transform_read: 'wat',
60
- })).toEqual({
61
- transformRead: 'wat-read-transformed',
62
- });
63
- });
64
- });
65
- (0, globals_1.describe)(EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject, () => {
66
- (0, globals_1.it)('transforms fields', () => {
67
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject)(blahEntityConfiguration, new Map(), {
68
- id: 'blah',
69
- cacheable: 'wat',
70
- uniqueButNotCacheable: 'wat',
71
- })).toEqual({
72
- id: 'blah',
73
- cacheable: 'wat',
74
- unique_but_not_cacheable: 'wat',
75
- });
76
- });
77
- (0, globals_1.it)('does field write transformation', () => {
78
- const fieldTransformMap = new Map([
79
- [
80
- EntityFields_1.StringField.name,
81
- {
82
- write: (val) => `${val}-write-transformed`,
83
- },
84
- ],
85
- ]);
86
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject)(blahEntityConfiguration, fieldTransformMap, {
87
- transformWrite: 'wat',
88
- })).toEqual({
89
- transform_write: 'wat-write-transformed',
90
- });
91
- });
92
- });
93
- (0, globals_1.describe)(EntityFieldTransformationUtils_1.transformCacheObjectToFields, () => {
94
- (0, globals_1.it)('does field read transformation, keeping unknown fields for cache version inconsistencies', () => {
95
- const fieldTransformMap = new Map([
96
- [
97
- EntityFields_1.StringField.name,
98
- {
99
- read: (val) => `${val}-read-transformed-cache`,
100
- },
101
- ],
102
- ]);
103
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformCacheObjectToFields)(blahEntityConfiguration, fieldTransformMap, {
104
- id: 'hello',
105
- transformRead: 'wat',
106
- unknownField: 'who',
107
- })).toEqual({
108
- id: 'hello',
109
- transformRead: 'wat-read-transformed-cache',
110
- unknownField: 'who',
111
- });
112
- });
113
- });
114
- (0, globals_1.describe)(EntityFieldTransformationUtils_1.transformFieldsToCacheObject, () => {
115
- (0, globals_1.it)('does field write transformation, keeping unknown fields at runtime for cache version inconsistencies', () => {
116
- const fieldTransformMap = new Map([
117
- [
118
- EntityFields_1.StringField.name,
119
- {
120
- write: (val) => `${val}-write-transformed-cache`,
121
- },
122
- ],
123
- ]);
124
- (0, globals_1.expect)((0, EntityFieldTransformationUtils_1.transformFieldsToCacheObject)(blahEntityConfiguration, fieldTransformMap, {
125
- id: 'hello',
126
- transformWrite: 'wat',
127
- unknownField: 'who',
128
- })).toEqual({
129
- id: 'hello',
130
- transformWrite: 'wat-write-transformed-cache',
131
- unknownField: 'who',
132
- });
133
- });
134
- });
135
- //# sourceMappingURL=EntityFieldTransformationUtils-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityFieldTransformationUtils-test.js","sourceRoot":"","sources":["../../../../src/internal/__tests__/EntityFieldTransformationUtils-test.ts"],"names":[],"mappings":"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"}
@@ -1,217 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const ts_mockito_1 = require("ts-mockito");
5
- const EntityConfiguration_1 = require("../../EntityConfiguration");
6
- const EntityFields_1 = require("../../EntityFields");
7
- const TSMockitoExtensions_1 = require("../../utils/__testfixtures__/TSMockitoExtensions");
8
- const ReadThroughEntityCache_1 = require("../ReadThroughEntityCache");
9
- const SingleFieldHolder_1 = require("../SingleFieldHolder");
10
- const makeEntityConfiguration = (cacheIdField) => new EntityConfiguration_1.EntityConfiguration({
11
- idField: 'id',
12
- tableName: 'blah',
13
- schema: {
14
- id: new EntityFields_1.UUIDField({ columnName: 'id', cache: cacheIdField }),
15
- },
16
- databaseAdapterFlavor: 'postgres',
17
- cacheAdapterFlavor: 'redis',
18
- });
19
- const createIdFetcher = (ids) => async (fetcherFieldValues) => {
20
- const results = new SingleFieldHolder_1.SingleFieldValueHolderMap();
21
- fetcherFieldValues.forEach((v) => {
22
- if (ids.includes(v.fieldValue)) {
23
- results.set(v, [{ id: v.fieldValue }]);
24
- }
25
- else {
26
- results.set(v, []);
27
- }
28
- });
29
- return results;
30
- };
31
- const createFetcherNonUnique = (ids) => async (fetcherFieldValues) => {
32
- const results = new SingleFieldHolder_1.SingleFieldValueHolderMap();
33
- fetcherFieldValues.forEach((v) => {
34
- if (ids.includes(v.fieldValue)) {
35
- results.set(v, [{ id: v.fieldValue }, { id: v.fieldValue + '2' }]);
36
- }
37
- else {
38
- results.set(v, []);
39
- }
40
- });
41
- return results;
42
- };
43
- (0, globals_1.describe)(ReadThroughEntityCache_1.ReadThroughEntityCache, () => {
44
- (0, globals_1.describe)('readManyThroughAsync', () => {
45
- (0, globals_1.it)('fetches from DB upon cache miss and caches the result', async () => {
46
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
47
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
48
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
49
- const fetcher = createIdFetcher(['wat', 'who']);
50
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
51
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
52
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
53
- ]))).thenResolve(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
54
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
55
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
56
- ])));
57
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
58
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
59
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
60
- ], fetcher);
61
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
62
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
63
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
64
- ]))).once();
65
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
66
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { id: 'wat' }],
67
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { id: 'who' }],
68
- ]))))).once();
69
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([]))).once();
70
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
71
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), [{ id: 'wat' }]],
72
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), [{ id: 'who' }]],
73
- ])));
74
- });
75
- (0, globals_1.it)('does not fetch from the DB or cache results when all cache fetches are hits', async () => {
76
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
77
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
78
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
79
- const fetcher = createIdFetcher(['wat', 'who']);
80
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
81
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
82
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
83
- ]))).thenResolve(new Map([
84
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'wat' } }],
85
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'who' } }],
86
- ]));
87
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
88
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
89
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
90
- ], fetcher);
91
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
92
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
93
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
94
- ]))).once();
95
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
96
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { id: 'wat' }],
97
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { id: 'who' }],
98
- ]))))).never();
99
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([]))).never();
100
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
101
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), [{ id: 'wat' }]],
102
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), [{ id: 'who' }]],
103
- ])));
104
- });
105
- (0, globals_1.it)('negatively caches db misses', async () => {
106
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
107
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
108
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
109
- // simulate db miss
110
- const fetcher = createIdFetcher(['wat', 'who']);
111
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('why')]))).thenResolve(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([[new SingleFieldHolder_1.SingleFieldValueHolder('why'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }]])));
112
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [new SingleFieldHolder_1.SingleFieldValueHolder('why')], fetcher);
113
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('why')]))).once();
114
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map())))).once();
115
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('why')]))).once();
116
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map()));
117
- });
118
- (0, globals_1.it)('does not return or fetch negatively cached results from DB', async () => {
119
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
120
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
121
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
122
- const fetcher = createIdFetcher([]);
123
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('why')]))).thenResolve(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([[new SingleFieldHolder_1.SingleFieldValueHolder('why'), { status: ReadThroughEntityCache_1.CacheStatus.NEGATIVE }]])));
124
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [new SingleFieldHolder_1.SingleFieldValueHolder('why')], fetcher);
125
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('why')]))).once();
126
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), (0, ts_mockito_1.anything)())).never();
127
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), (0, ts_mockito_1.anything)())).never();
128
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map()));
129
- });
130
- (0, globals_1.it)('does a mix and match of hit, miss, and negative', async () => {
131
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
132
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
133
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
134
- const fetcher = createIdFetcher(['wat', 'who', 'why']);
135
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
136
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
137
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
138
- new SingleFieldHolder_1.SingleFieldValueHolder('why'),
139
- new SingleFieldHolder_1.SingleFieldValueHolder('how'),
140
- ]))).thenResolve(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
141
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
142
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { status: ReadThroughEntityCache_1.CacheStatus.NEGATIVE }],
143
- [new SingleFieldHolder_1.SingleFieldValueHolder('why'), { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'why' } }],
144
- [new SingleFieldHolder_1.SingleFieldValueHolder('how'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
145
- ])));
146
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
147
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
148
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
149
- new SingleFieldHolder_1.SingleFieldValueHolder('why'),
150
- new SingleFieldHolder_1.SingleFieldValueHolder('how'),
151
- ], fetcher);
152
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
153
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
154
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
155
- new SingleFieldHolder_1.SingleFieldValueHolder('why'),
156
- new SingleFieldHolder_1.SingleFieldValueHolder('how'),
157
- ]))).once();
158
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([[new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { id: 'wat' }]]))))).once();
159
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('how')]))).once();
160
- (0, globals_1.expect)((0, TSMockitoExtensions_1.isEqualWithEntityAware)(result, new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
161
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), [{ id: 'wat' }]],
162
- [new SingleFieldHolder_1.SingleFieldValueHolder('why'), [{ id: 'why' }]],
163
- ])))).toBe(true);
164
- });
165
- (0, globals_1.it)('does not call into cache for field that is not cacheable', async () => {
166
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
167
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
168
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(false), cacheAdapter);
169
- const fetcher = createIdFetcher(['wat']);
170
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [new SingleFieldHolder_1.SingleFieldValueHolder('wat')], fetcher);
171
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), (0, ts_mockito_1.anything)())).never();
172
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([[new SingleFieldHolder_1.SingleFieldValueHolder('wat'), [{ id: 'wat' }]]])));
173
- });
174
- (0, globals_1.it)('does not cache when DB returns multiple objects for what is supposed to be unique and returns empty', async () => {
175
- const consoleSpy = globals_1.jest.spyOn(console, 'warn');
176
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
177
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
178
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
179
- const fetcher = createFetcherNonUnique(['wat', 'who']);
180
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
181
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
182
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
183
- ]))).thenResolve(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map([
184
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
185
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
186
- ])));
187
- const result = await entityCache.readManyThroughAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
188
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
189
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
190
- ], fetcher);
191
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([
192
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
193
- new SingleFieldHolder_1.SingleFieldValueHolder('who'),
194
- ]))).once();
195
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)(new Map([
196
- [new SingleFieldHolder_1.SingleFieldValueHolder('wat'), { id: 'wat' }],
197
- [new SingleFieldHolder_1.SingleFieldValueHolder('who'), { id: 'who' }],
198
- ])))).never();
199
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheDBMissesAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([]))).once();
200
- (0, globals_1.expect)(result).toEqual(new SingleFieldHolder_1.SingleFieldValueHolderMap(new Map()));
201
- (0, globals_1.expect)(consoleSpy).toHaveBeenCalledWith('unique key SingleField(id) in table blah returned multiple rows for SingleFieldValue(wat)');
202
- (0, globals_1.expect)(consoleSpy).toHaveBeenCalledWith('unique key SingleField(id) in table blah returned multiple rows for SingleFieldValue(who)');
203
- });
204
- });
205
- (0, globals_1.describe)('invalidateManyAsync', () => {
206
- (0, globals_1.it)('calls cache adapter invalidate', async () => {
207
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
208
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
209
- const entityCache = new ReadThroughEntityCache_1.ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
210
- await entityCache.invalidateManyAsync(new SingleFieldHolder_1.SingleFieldHolder('id'), [
211
- new SingleFieldHolder_1.SingleFieldValueHolder('wat'),
212
- ]);
213
- (0, ts_mockito_1.verify)(cacheAdapterMock.invalidateManyAsync((0, TSMockitoExtensions_1.deepEqualEntityAware)(new SingleFieldHolder_1.SingleFieldHolder('id')), (0, TSMockitoExtensions_1.deepEqualEntityAware)([new SingleFieldHolder_1.SingleFieldValueHolder('wat')]))).once();
214
- });
215
- });
216
- });
217
- //# sourceMappingURL=ReadThroughEntityCache-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadThroughEntityCache-test.js","sourceRoot":"","sources":["../../../../src/internal/__tests__/ReadThroughEntityCache-test.ts"],"names":[],"mappings":";;AAAA,2CAA2D;AAC3D,2CAAoE;AAEpE,mEAAgE;AAChE,qDAA+C;AAE/C,0FAG0D;AAC1D,sEAAgF;AAChF,4DAI8B;AAM9B,MAAM,uBAAuB,GAAG,CAAC,YAAqB,EAAyC,EAAE,CAC/F,IAAI,yCAAmB,CAAmB;IACxC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;KAC7D;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEL,MAAM,eAAe,GACnB,CAAC,GAAa,EAAE,EAAE,CAClB,KAAK,EACH,kBAAoE,EAGpE,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,6CAAyB,EAAkD,CAAC;IAChG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEJ,MAAM,sBAAsB,GAC1B,CAAC,GAAa,EAAE,EAAE,CAClB,KAAK,EACH,kBAAoE,EAGpE,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,6CAAyB,EAAkD,CAAC;IAChG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEJ,IAAA,kBAAQ,EAAC,+CAAsB,EAAE,GAAG,EAAE;IACpC,IAAA,kBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAA,YAAE,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEhD,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,WAAW,CACX,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;gBACjE,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;aAClE,CAAC,CACH,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD;gBACE,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;aACpD,EACD,OAAO,CACR,CAAC;YAEF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,cAAc,CAC7B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAClB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;gBAClD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;aACnD,CAAC,CACH,CACF,CACF,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,kBAAkB,CACjC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAyB,IAAI,CAAC,CAAC,EACzE,IAAA,0CAAoB,EAAC,EAAgD,CAAC,CACvE,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CACpB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;aACrD,CAAC,CACH,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YAC3F,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEhD,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,WAAW,CACX,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrF,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;aACtF,CAAC,CACH,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD;gBACE,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;aACpD,EACD,OAAO,CACR,CAAC;YAEF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,cAAc,CAC7B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAClB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;gBAClD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;aACnD,CAAC,CACH,CACF,CACF,CACF,CAAC,KAAK,EAAE,CAAC;YACV,IAAA,mBAAM,EACJ,gBAAgB,CAAC,kBAAkB,CACjC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAyB,IAAI,CAAC,CAAC,EACzE,IAAA,0CAAoB,EAAC,EAAgD,CAAC,CACvE,CACF,CAAC,KAAK,EAAE,CAAC;YACV,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CACpB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;aACrD,CAAC,CACH,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAE5F,mBAAmB;YACnB,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEhD,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,WAAW,CACX,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC7E,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD,CAAC,IAAI,0CAAsB,CAAmB,KAAK,CAAC,CAAC,EACrD,OAAO,CACR,CAAC;YAEF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,cAAc,CAC7B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,IAAI,6CAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAC/D,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,kBAAkB,CACjC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,6CAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAEpC,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,WAAW,CACX,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CACjF,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD,CAAC,IAAI,0CAAsB,CAAmB,KAAK,CAAC,CAAC,EACrD,OAAO,CACR,CAAC;YACF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,EAAE,IAAA,qBAAQ,GAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACzF,IAAA,mBAAM,EAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,EAAE,IAAA,qBAAQ,GAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7F,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,6CAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEvD,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,WAAW,CACX,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;gBACjE,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,QAAQ,EAAE,CAAC;gBACrE,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrF,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;aAClE,CAAC,CACH,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD;gBACE,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;aACpD,EACD,OAAO,CACR,CAAC;YACF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,cAAc,CAC7B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAClB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAC9D,CACF,CACF,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,kBAAkB,CACjC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,gBAAM,EACJ,IAAA,4CAAsB,EACpB,MAAM,EACN,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;aACrD,CAAC,CACH,CACF,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD,CAAC,IAAI,0CAAsB,CAAmB,KAAK,CAAC,CAAC,EACrD,OAAO,CACR,CAAC;YACF,IAAA,mBAAM,EAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,EAAE,IAAA,qBAAQ,GAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACxF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CACpB,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAChE,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;YACnH,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAEvD,IAAA,iBAAI,EACF,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,WAAW,CACX,IAAI,6CAAyB,CAC3B,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;gBACjE,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;aAClE,CAAC,CACH,CACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACnD,IAAI,qCAAiB,CAAyB,IAAI,CAAC,EACnD;gBACE,IAAI,0CAAsB,CAAmB,KAAK,CAAC;gBACnD,IAAI,0CAAsB,CAAmB,KAAK,CAAC;aACpD,EACD,OAAO,CACR,CAAC;YAEF,IAAA,mBAAM,EACJ,gBAAgB,CAAC,aAAa,CAC5B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC;gBACnB,IAAI,0CAAsB,CAAC,KAAK,CAAC;gBACjC,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,mBAAM,EACJ,gBAAgB,CAAC,cAAc,CAC7B,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAClB,IAAI,GAAG,CAAC;gBACN,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;gBAClD,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;aACnD,CAAC,CACH,CACF,CACF,CAAC,KAAK,EAAE,CAAC;YACV,IAAA,mBAAM,EACJ,gBAAgB,CAAC,kBAAkB,CACjC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAyB,IAAI,CAAC,CAAC,EACzE,IAAA,0CAAoB,EAAC,EAAgD,CAAC,CACvE,CACF,CAAC,IAAI,EAAE,CAAC;YACT,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,6CAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAEjE,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,2FAA2F,CAC5F,CAAC;YACF,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,2FAA2F,CAC5F,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAA,YAAE,EAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,gBAAgB,GAAG,IAAA,iBAAI,GAAyC,CAAC;YACvE,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,gBAAgB,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,+CAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,WAAW,CAAC,mBAAmB,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,EAAE;gBACjE,IAAI,0CAAsB,CAAC,KAAK,CAAC;aAClC,CAAC,CAAC;YACH,IAAA,mBAAM,EACJ,gBAAgB,CAAC,mBAAmB,CAClC,IAAA,0CAAoB,EAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,EACjD,IAAA,0CAAoB,EAAC,CAAC,IAAI,0CAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ts_mockito_1 = require("ts-mockito");
4
- const EntityQueryContext_1 = require("../../EntityQueryContext");
5
- const ViewerContext_1 = require("../../ViewerContext");
6
- const PrivacyPolicyRuleTestUtils_1 = require("../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils");
7
- const AlwaysAllowPrivacyPolicyRule_1 = require("../AlwaysAllowPrivacyPolicyRule");
8
- (0, PrivacyPolicyRuleTestUtils_1.describePrivacyPolicyRule)(new AlwaysAllowPrivacyPolicyRule_1.AlwaysAllowPrivacyPolicyRule(), {
9
- allowCases: [
10
- {
11
- viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.ViewerContext)),
12
- queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
13
- evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
14
- entity: (0, ts_mockito_1.anything)(),
15
- },
16
- ],
17
- });
18
- //# sourceMappingURL=AlwaysAllowPrivacyPolicyRule-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlwaysAllowPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../../src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,uDAAoD;AACpD,wGAAoG;AACpG,kFAA+E;AAE/E,IAAA,sDAAyB,EAAC,IAAI,2DAA4B,EAAE,EAAE;IAC5D,UAAU,EAAE;QACV;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,6BAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ts_mockito_1 = require("ts-mockito");
4
- const EntityQueryContext_1 = require("../../EntityQueryContext");
5
- const ViewerContext_1 = require("../../ViewerContext");
6
- const PrivacyPolicyRuleTestUtils_1 = require("../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils");
7
- const AlwaysDenyPrivacyPolicyRule_1 = require("../AlwaysDenyPrivacyPolicyRule");
8
- (0, PrivacyPolicyRuleTestUtils_1.describePrivacyPolicyRule)(new AlwaysDenyPrivacyPolicyRule_1.AlwaysDenyPrivacyPolicyRule(), {
9
- denyCases: [
10
- {
11
- viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.ViewerContext)),
12
- queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
13
- evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
14
- entity: (0, ts_mockito_1.anything)(),
15
- },
16
- ],
17
- });
18
- //# sourceMappingURL=AlwaysDenyPrivacyPolicyRule-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlwaysDenyPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../../src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,uDAAoD;AACpD,wGAAoG;AACpG,gFAA6E;AAE7E,IAAA,sDAAyB,EAAC,IAAI,yDAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,6BAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ts_mockito_1 = require("ts-mockito");
4
- const EntityQueryContext_1 = require("../../EntityQueryContext");
5
- const ViewerContext_1 = require("../../ViewerContext");
6
- const PrivacyPolicyRuleTestUtils_1 = require("../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils");
7
- const AlwaysSkipPrivacyPolicyRule_1 = require("../AlwaysSkipPrivacyPolicyRule");
8
- (0, PrivacyPolicyRuleTestUtils_1.describePrivacyPolicyRule)(new AlwaysSkipPrivacyPolicyRule_1.AlwaysSkipPrivacyPolicyRule(), {
9
- skipCases: [
10
- {
11
- viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.ViewerContext)),
12
- queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
13
- evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
14
- entity: (0, ts_mockito_1.anything)(),
15
- },
16
- ],
17
- });
18
- //# sourceMappingURL=AlwaysSkipPrivacyPolicyRule-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlwaysSkipPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../../src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,uDAAoD;AACpD,wGAAoG;AACpG,gFAA6E;AAE7E,IAAA,sDAAyB,EAAC,IAAI,yDAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,6BAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -1,28 +0,0 @@
1
- import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
2
- import { EntityQueryContext } from '../../EntityQueryContext';
3
- import { ReadonlyEntity } from '../../ReadonlyEntity';
4
- import { ViewerContext } from '../../ViewerContext';
5
- import { PrivacyPolicyRule } from '../../rules/PrivacyPolicyRule';
6
- export interface Case<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
7
- viewerContext: TViewerContext;
8
- queryContext: EntityQueryContext;
9
- evaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
10
- entity: TEntity;
11
- }
12
- export type CaseMap<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> = Map<string, () => Promise<Case<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>>>;
13
- /**
14
- * Useful for defining test cases that have async preconditions.
15
- */
16
- export declare const describePrivacyPolicyRuleWithAsyncTestCase: <TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
17
- allowCases?: CaseMap<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
18
- skipCases?: CaseMap<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
19
- denyCases?: CaseMap<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
20
- }) => void;
21
- /**
22
- * For test simple privacy rules that don't have complex async preconditions.
23
- */
24
- export declare const describePrivacyPolicyRule: <TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
25
- allowCases?: Case<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
26
- skipCases?: Case<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
27
- denyCases?: Case<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
28
- }) => void;