@expo/entity 0.16.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/EnforcingEntityLoader.js +2 -2
- package/build/EnforcingEntityLoader.js.map +1 -1
- package/build/Entity.js +8 -2
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.js +3 -3
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCompanion.d.ts +5 -0
- package/build/EntityCompanion.js +8 -1
- package/build/EntityCompanion.js.map +1 -1
- package/build/EntityCompanionProvider.d.ts +1 -1
- package/build/EntityCompanionProvider.js +5 -5
- package/build/EntityCompanionProvider.js.map +1 -1
- package/build/EntityConfiguration.d.ts +1 -1
- package/build/EntityConfiguration.js +3 -3
- package/build/EntityConfiguration.js.map +1 -1
- package/build/EntityDatabaseAdapter.d.ts +4 -4
- package/build/EntityDatabaseAdapter.js +13 -13
- package/build/EntityDatabaseAdapter.js.map +1 -1
- package/build/EntityFieldDefinition.d.ts +77 -0
- package/build/EntityFieldDefinition.js +53 -0
- package/build/EntityFieldDefinition.js.map +1 -0
- package/build/EntityFields.d.ts +5 -78
- package/build/EntityFields.js +19 -61
- package/build/EntityFields.js.map +1 -1
- package/build/EntityLoader.d.ts +3 -1
- package/build/EntityLoader.js +19 -15
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +3 -1
- package/build/EntityLoaderFactory.js +3 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +26 -0
- package/build/EntityMutationInfo.js +10 -0
- package/build/EntityMutationInfo.js.map +1 -0
- package/build/EntityMutationTriggerConfiguration.d.ts +4 -4
- package/build/EntityMutationValidator.d.ts +3 -3
- package/build/EntityMutationValidator.js.map +1 -1
- package/build/EntityMutator.d.ts +5 -16
- package/build/EntityMutator.js +62 -58
- package/build/EntityMutator.js.map +1 -1
- package/build/EntityPrivacyPolicy.d.ts +5 -4
- package/build/EntityPrivacyPolicy.js +60 -12
- package/build/EntityPrivacyPolicy.js.map +1 -1
- package/build/EntityQueryContext.d.ts +13 -0
- package/build/EntityQueryContext.js +18 -0
- package/build/EntityQueryContext.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.js +2 -2
- package/build/EntitySecondaryCacheLoader.js.map +1 -1
- package/build/ReadonlyEntity.js +3 -4
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityCompanion.d.ts +5 -0
- package/build/ViewerScopedEntityCompanion.js +6 -0
- package/build/ViewerScopedEntityCompanion.js.map +1 -1
- package/build/__tests__/EnforcingEntityLoader-test.js +82 -82
- package/build/__tests__/EnforcingEntityLoader-test.js.map +1 -1
- package/build/__tests__/Entity-test.js +6 -6
- package/build/__tests__/Entity-test.js.map +1 -1
- package/build/__tests__/EntityAssociationLoader-test.js +40 -40
- package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js +11 -11
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityCompanion-test.js +3 -3
- package/build/__tests__/EntityCompanion-test.js.map +1 -1
- package/build/__tests__/EntityCompanionProvider-test.js +1 -1
- package/build/__tests__/EntityCompanionProvider-test.js.map +1 -1
- package/build/__tests__/EntityDatabaseAdapter-test.js +12 -12
- package/build/__tests__/EntityDatabaseAdapter-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +103 -6
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityFields-test.js +18 -26
- package/build/__tests__/EntityFields-test.js.map +1 -1
- package/build/__tests__/EntityLoader-constructor-test.d.ts +22 -0
- package/build/__tests__/EntityLoader-constructor-test.js +111 -0
- package/build/__tests__/EntityLoader-constructor-test.js.map +1 -0
- package/build/__tests__/EntityLoader-test.js +81 -73
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +1 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +81 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -0
- package/build/__tests__/EntityMutator-test.js +138 -136
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +143 -67
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +15 -15
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +13 -12
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
- package/build/__tests__/ReadonlyEntity-test.js +12 -12
- package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
- package/build/__tests__/ViewerContext-test.js +2 -2
- package/build/__tests__/ViewerContext-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.js +2 -2
- package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +2 -2
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +5 -5
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +5 -5
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +5 -5
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +2 -2
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
- package/build/__tests__/entityUtils-test.js +21 -21
- package/build/__tests__/entityUtils-test.js.map +1 -1
- package/build/index.d.ts +3 -0
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/internal/EntityDataManager.js +8 -7
- package/build/internal/EntityDataManager.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.js +2 -2
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.js +4 -4
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/__tests__/EntityDataManager-test.js +21 -21
- package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +8 -8
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +48 -48
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/metrics/EntityMetricsUtils.js +1 -1
- package/build/metrics/EntityMetricsUtils.js.map +1 -1
- package/build/metrics/IEntityMetricsAdapter.d.ts +16 -0
- package/build/metrics/IEntityMetricsAdapter.js +6 -1
- package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
- package/build/metrics/NoOpEntityMetricsAdapter.d.ts +2 -1
- package/build/metrics/NoOpEntityMetricsAdapter.js +1 -0
- package/build/metrics/NoOpEntityMetricsAdapter.js.map +1 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
- package/build/testfixtures/DateIDTestEntity.js.map +1 -1
- package/build/testfixtures/SimpleTestEntity.js.map +1 -1
- package/build/testfixtures/TestEntity.d.ts +6 -6
- package/build/testfixtures/TestEntity.js +4 -4
- package/build/testfixtures/TestEntity.js.map +1 -1
- package/build/testfixtures/TestEntity2.d.ts +5 -5
- package/build/testfixtures/TestEntity2.js.map +1 -1
- package/build/testfixtures/TestEntityNumberKey.js +1 -1
- package/build/testfixtures/TestEntityNumberKey.js.map +1 -1
- package/build/utils/collections/__tests__/maps-test.js +13 -13
- package/build/utils/collections/__tests__/maps-test.js.map +1 -1
- package/build/utils/collections/maps.js +1 -1
- package/build/utils/collections/maps.js.map +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +6 -6
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
- package/build/utils/testing/StubCacheAdapter.js +1 -1
- package/build/utils/testing/StubCacheAdapter.js.map +1 -1
- package/build/utils/testing/StubDatabaseAdapter.js +7 -7
- package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +26 -26
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +1 -1
- package/build/utils/testing/describeFieldTestCase.d.ts +2 -0
- package/build/utils/testing/describeFieldTestCase.js +18 -0
- package/build/utils/testing/describeFieldTestCase.js.map +1 -0
- package/package.json +2 -1
- package/src/Entity.ts +10 -2
- package/src/EntityAssociationLoader.ts +1 -1
- package/src/EntityCompanion.ts +10 -2
- package/src/EntityCompanionProvider.ts +5 -9
- package/src/EntityConfiguration.ts +1 -1
- package/src/EntityDatabaseAdapter.ts +10 -8
- package/src/EntityFieldDefinition.ts +124 -0
- package/src/EntityFields.ts +11 -126
- package/src/EntityLoader.ts +12 -4
- package/src/EntityLoaderFactory.ts +5 -2
- package/src/EntityMutationInfo.ts +47 -0
- package/src/EntityMutationTriggerConfiguration.ts +5 -5
- package/src/EntityMutationValidator.ts +10 -4
- package/src/EntityMutator.ts +98 -76
- package/src/EntityPrivacyPolicy.ts +77 -19
- package/src/EntityQueryContext.ts +20 -0
- package/src/ReadonlyEntity.ts +3 -2
- package/src/ViewerScopedEntityCompanion.ts +8 -0
- package/src/__tests__/Entity-test.ts +8 -8
- package/src/__tests__/EntityCommonUseCases-test.ts +4 -4
- package/src/__tests__/EntityEdges-test.ts +169 -14
- package/src/__tests__/EntityFields-test.ts +6 -23
- package/src/__tests__/EntityLoader-constructor-test.ts +177 -0
- package/src/__tests__/EntityLoader-test.ts +48 -20
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +105 -0
- package/src/__tests__/EntityMutator-test.ts +153 -146
- package/src/__tests__/EntityPrivacyPolicy-test.ts +215 -78
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -9
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +6 -5
- package/src/__tests__/ReadonlyEntity-test.ts +1 -1
- package/src/__tests__/ViewerContext-test.ts +7 -6
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +11 -10
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +4 -3
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +6 -6
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +4 -4
- package/src/index.ts +3 -0
- package/src/internal/EntityDataManager.ts +2 -1
- package/src/internal/__tests__/EntityDataManager-test.ts +6 -6
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +15 -13
- package/src/metrics/EntityMetricsUtils.ts +56 -50
- package/src/metrics/IEntityMetricsAdapter.ts +23 -0
- package/src/metrics/NoOpEntityMetricsAdapter.ts +2 -0
- package/src/testfixtures/DateIDTestEntity.ts +4 -4
- package/src/testfixtures/SimpleTestEntity.ts +4 -4
- package/src/testfixtures/TestEntity.ts +8 -8
- package/src/testfixtures/TestEntity2.ts +4 -4
- package/src/testfixtures/TestEntityNumberKey.ts +6 -6
- package/src/utils/testing/StubDatabaseAdapter.ts +4 -4
- package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +18 -18
- package/src/utils/testing/describeFieldTestCase.ts +21 -0
- package/CHANGELOG.md +0 -241
|
@@ -38,10 +38,11 @@ describe(EntityLoader_1.default, () => {
|
|
|
38
38
|
it('loads entities', async () => {
|
|
39
39
|
var _a;
|
|
40
40
|
const dateToInsert = new Date();
|
|
41
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
41
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
42
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
42
43
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
43
|
-
const id1 = uuid_1.v4();
|
|
44
|
-
const id2 = uuid_1.v4();
|
|
44
|
+
const id1 = (0, uuid_1.v4)();
|
|
45
|
+
const id2 = (0, uuid_1.v4)();
|
|
45
46
|
const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
|
|
46
47
|
[
|
|
47
48
|
TestEntity_1.testEntityConfiguration.tableName,
|
|
@@ -49,7 +50,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
49
50
|
{
|
|
50
51
|
customIdField: id1,
|
|
51
52
|
testIndexedField: 'h1',
|
|
52
|
-
|
|
53
|
+
intField: 5,
|
|
53
54
|
stringField: 'huh',
|
|
54
55
|
dateField: dateToInsert,
|
|
55
56
|
nullableField: null,
|
|
@@ -57,7 +58,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
57
58
|
{
|
|
58
59
|
customIdField: id2,
|
|
59
60
|
testIndexedField: 'h2',
|
|
60
|
-
|
|
61
|
+
intField: 3,
|
|
61
62
|
stringField: 'huh',
|
|
62
63
|
dateField: dateToInsert,
|
|
63
64
|
nullableField: null,
|
|
@@ -69,17 +70,17 @@ describe(EntityLoader_1.default, () => {
|
|
|
69
70
|
const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
|
|
70
71
|
const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
|
|
71
72
|
const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
|
|
72
|
-
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, ts_mockito_1.instance(ts_mockito_1.mock()), TestEntity_1.default.name);
|
|
73
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager);
|
|
74
|
-
const entity = await results_1.enforceAsyncResult(entityLoader.loadByIDAsync(id1));
|
|
73
|
+
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
|
|
74
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
|
|
75
|
+
const entity = await (0, results_1.enforceAsyncResult)(entityLoader.loadByIDAsync(id1));
|
|
75
76
|
expect(entity.getID()).toEqual(id1);
|
|
76
77
|
expect(entity.getField('dateField')).toEqual(dateToInsert);
|
|
77
|
-
const entities = await entityUtils_1.enforceResultsAsync(entityLoader.loadManyByFieldEqualingAsync('stringField', 'huh'));
|
|
78
|
+
const entities = await (0, entityUtils_1.enforceResultsAsync)(entityLoader.loadManyByFieldEqualingAsync('stringField', 'huh'));
|
|
78
79
|
expect(entities.map((m) => m.getID())).toEqual([id1, id2]);
|
|
79
|
-
const entityResultNumber3 = await entityLoader.loadByFieldEqualingAsync('
|
|
80
|
+
const entityResultNumber3 = await entityLoader.loadByFieldEqualingAsync('intField', 3);
|
|
80
81
|
expect(entityResultNumber3).not.toBeNull();
|
|
81
82
|
expect(entityResultNumber3.enforceValue().getID()).toEqual(id2);
|
|
82
|
-
const entityResultNumber4 = await entityLoader.loadByFieldEqualingAsync('
|
|
83
|
+
const entityResultNumber4 = await entityLoader.loadByFieldEqualingAsync('intField', 4);
|
|
83
84
|
expect(entityResultNumber4).toBeNull();
|
|
84
85
|
const entityResultDuplicateValues = await entityLoader
|
|
85
86
|
.enforcing()
|
|
@@ -87,18 +88,19 @@ describe(EntityLoader_1.default, () => {
|
|
|
87
88
|
expect(entityResultDuplicateValues.size).toBe(1);
|
|
88
89
|
expect((_a = entityResultDuplicateValues.get('huh')) === null || _a === void 0 ? void 0 : _a.map((m) => m.getID())).toEqual([id1, id2]);
|
|
89
90
|
await expect(entityLoader.loadByFieldEqualingAsync('stringField', 'huh')).rejects.toThrowError('loadByFieldEqualing: Multiple entities of type TestEntity found for stringField=huh');
|
|
90
|
-
await expect(entityLoader.loadByIDNullableAsync(uuid_1.v4())).resolves.toBeNull();
|
|
91
|
+
await expect(entityLoader.loadByIDNullableAsync((0, uuid_1.v4)())).resolves.toBeNull();
|
|
91
92
|
await expect(entityLoader.loadByIDNullableAsync(id1)).resolves.not.toBeNull();
|
|
92
93
|
await expect(entityLoader.loadByIDAsync('not-a-uuid')).rejects.toThrowError('Entity field not valid: TestEntity (customIdField = not-a-uuid)');
|
|
93
94
|
});
|
|
94
95
|
it('loads entities with loadManyByFieldEqualityConjunction', async () => {
|
|
95
96
|
const privacyPolicy = new TestEntity_1.TestEntityPrivacyPolicy();
|
|
96
|
-
const spiedPrivacyPolicy = ts_mockito_1.spy(privacyPolicy);
|
|
97
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
97
|
+
const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
|
|
98
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
99
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
98
100
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
99
|
-
const id1 = uuid_1.v4();
|
|
100
|
-
const id2 = uuid_1.v4();
|
|
101
|
-
const id3 = uuid_1.v4();
|
|
101
|
+
const id1 = (0, uuid_1.v4)();
|
|
102
|
+
const id2 = (0, uuid_1.v4)();
|
|
103
|
+
const id3 = (0, uuid_1.v4)();
|
|
102
104
|
const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
|
|
103
105
|
[
|
|
104
106
|
TestEntity_1.testEntityConfiguration.tableName,
|
|
@@ -106,7 +108,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
106
108
|
{
|
|
107
109
|
customIdField: id1,
|
|
108
110
|
stringField: 'huh',
|
|
109
|
-
|
|
111
|
+
intField: 4,
|
|
110
112
|
testIndexedField: '4',
|
|
111
113
|
dateField: new Date(),
|
|
112
114
|
nullableField: null,
|
|
@@ -114,7 +116,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
114
116
|
{
|
|
115
117
|
customIdField: id2,
|
|
116
118
|
stringField: 'huh',
|
|
117
|
-
|
|
119
|
+
intField: 4,
|
|
118
120
|
testIndexedField: '5',
|
|
119
121
|
dateField: new Date(),
|
|
120
122
|
nullableField: null,
|
|
@@ -122,7 +124,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
122
124
|
{
|
|
123
125
|
customIdField: id3,
|
|
124
126
|
stringField: 'huh2',
|
|
125
|
-
|
|
127
|
+
intField: 4,
|
|
126
128
|
testIndexedField: '6',
|
|
127
129
|
dateField: new Date(),
|
|
128
130
|
nullableField: null,
|
|
@@ -133,30 +135,31 @@ describe(EntityLoader_1.default, () => {
|
|
|
133
135
|
const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
|
|
134
136
|
const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
|
|
135
137
|
const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
|
|
136
|
-
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, ts_mockito_1.instance(ts_mockito_1.mock()), TestEntity_1.default.name);
|
|
137
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager);
|
|
138
|
-
const entities = await entityUtils_1.enforceResultsAsync(entityLoader.loadManyByFieldEqualityConjunctionAsync([
|
|
138
|
+
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
|
|
139
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
|
|
140
|
+
const entities = await (0, entityUtils_1.enforceResultsAsync)(entityLoader.loadManyByFieldEqualityConjunctionAsync([
|
|
139
141
|
{
|
|
140
142
|
fieldName: 'stringField',
|
|
141
143
|
fieldValue: 'huh',
|
|
142
144
|
},
|
|
143
145
|
{
|
|
144
|
-
fieldName: '
|
|
146
|
+
fieldName: 'intField',
|
|
145
147
|
fieldValue: 4,
|
|
146
148
|
},
|
|
147
149
|
]));
|
|
148
150
|
expect(entities).toHaveLength(2);
|
|
149
|
-
ts_mockito_1.verify(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, ts_mockito_1.anyOfClass(TestEntity_1.default))).twice();
|
|
151
|
+
(0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).twice();
|
|
150
152
|
await expect(entityLoader.loadManyByFieldEqualityConjunctionAsync([
|
|
151
153
|
{ fieldName: 'customIdField', fieldValue: 'not-a-uuid' },
|
|
152
154
|
])).rejects.toThrowError('Entity field not valid: TestEntity (customIdField = not-a-uuid)');
|
|
153
155
|
});
|
|
154
156
|
it('authorizes loaded entities', async () => {
|
|
155
157
|
const privacyPolicy = new TestEntity_1.TestEntityPrivacyPolicy();
|
|
156
|
-
const spiedPrivacyPolicy = ts_mockito_1.spy(privacyPolicy);
|
|
157
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
158
|
+
const spiedPrivacyPolicy = (0, ts_mockito_1.spy)(privacyPolicy);
|
|
159
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
160
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
158
161
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
159
|
-
const id1 = uuid_1.v4();
|
|
162
|
+
const id1 = (0, uuid_1.v4)();
|
|
160
163
|
const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, new Map([
|
|
161
164
|
[
|
|
162
165
|
TestEntity_1.testEntityConfiguration.tableName,
|
|
@@ -165,7 +168,7 @@ describe(EntityLoader_1.default, () => {
|
|
|
165
168
|
customIdField: id1,
|
|
166
169
|
stringField: 'huh',
|
|
167
170
|
testIndexedField: '1',
|
|
168
|
-
|
|
171
|
+
intField: 3,
|
|
169
172
|
dateField: new Date(),
|
|
170
173
|
nullableField: null,
|
|
171
174
|
},
|
|
@@ -175,74 +178,79 @@ describe(EntityLoader_1.default, () => {
|
|
|
175
178
|
const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
|
|
176
179
|
const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
|
|
177
180
|
const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
|
|
178
|
-
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, ts_mockito_1.instance(ts_mockito_1.mock()), TestEntity_1.default.name);
|
|
179
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager);
|
|
180
|
-
const entity = await results_1.enforceAsyncResult(entityLoader.loadByIDAsync(id1));
|
|
181
|
-
ts_mockito_1.verify(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, entity)).once();
|
|
181
|
+
const dataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, StubQueryContextProvider_1.default, (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()), TestEntity_1.default.name);
|
|
182
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManager, metricsAdapter);
|
|
183
|
+
const entity = await (0, results_1.enforceAsyncResult)(entityLoader.loadByIDAsync(id1));
|
|
184
|
+
(0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(viewerContext, queryContext, entity, (0, ts_mockito_1.anything)())).once();
|
|
182
185
|
});
|
|
183
186
|
it('invalidates upon invalidate one', async () => {
|
|
184
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
187
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
188
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
185
189
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
186
|
-
const privacyPolicy = ts_mockito_1.instance(ts_mockito_1.mock(TestEntity_1.TestEntityPrivacyPolicy));
|
|
187
|
-
const dataManagerMock = ts_mockito_1.mock();
|
|
188
|
-
const dataManagerInstance = ts_mockito_1.instance(dataManagerMock);
|
|
189
|
-
const id1 = uuid_1.v4();
|
|
190
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance);
|
|
190
|
+
const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
|
|
191
|
+
const dataManagerMock = (0, ts_mockito_1.mock)();
|
|
192
|
+
const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
|
|
193
|
+
const id1 = (0, uuid_1.v4)();
|
|
194
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
|
|
191
195
|
await entityLoader.invalidateFieldsAsync({ customIdField: id1 });
|
|
192
|
-
ts_mockito_1.verify(dataManagerMock.invalidateObjectFieldsAsync(ts_mockito_1.deepEqual({ customIdField: id1 }))).once();
|
|
196
|
+
(0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
|
|
193
197
|
});
|
|
194
198
|
it('invalidates upon invalidate by field', async () => {
|
|
195
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
199
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
200
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
196
201
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
197
|
-
const privacyPolicy = ts_mockito_1.instance(ts_mockito_1.mock(TestEntity_1.TestEntityPrivacyPolicy));
|
|
198
|
-
const dataManagerMock = ts_mockito_1.mock();
|
|
199
|
-
const dataManagerInstance = ts_mockito_1.instance(dataManagerMock);
|
|
200
|
-
const id1 = uuid_1.v4();
|
|
201
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance);
|
|
202
|
+
const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
|
|
203
|
+
const dataManagerMock = (0, ts_mockito_1.mock)();
|
|
204
|
+
const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
|
|
205
|
+
const id1 = (0, uuid_1.v4)();
|
|
206
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
|
|
202
207
|
await entityLoader.invalidateFieldsAsync({ customIdField: id1 });
|
|
203
|
-
ts_mockito_1.verify(dataManagerMock.invalidateObjectFieldsAsync(ts_mockito_1.deepEqual({ customIdField: id1 }))).once();
|
|
208
|
+
(0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
|
|
204
209
|
});
|
|
205
210
|
it('invalidates upon invalidate by entity', async () => {
|
|
206
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
211
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
212
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
207
213
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
208
|
-
const privacyPolicy = ts_mockito_1.instance(ts_mockito_1.mock(TestEntity_1.TestEntityPrivacyPolicy));
|
|
209
|
-
const dataManagerMock = ts_mockito_1.mock();
|
|
210
|
-
const dataManagerInstance = ts_mockito_1.instance(dataManagerMock);
|
|
211
|
-
const id1 = uuid_1.v4();
|
|
212
|
-
const entityMock = ts_mockito_1.mock(TestEntity_1.default);
|
|
213
|
-
ts_mockito_1.when(entityMock.getAllDatabaseFields()).thenReturn({ customIdField: id1 });
|
|
214
|
-
const entityInstance = ts_mockito_1.instance(entityMock);
|
|
215
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance);
|
|
214
|
+
const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
|
|
215
|
+
const dataManagerMock = (0, ts_mockito_1.mock)();
|
|
216
|
+
const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
|
|
217
|
+
const id1 = (0, uuid_1.v4)();
|
|
218
|
+
const entityMock = (0, ts_mockito_1.mock)(TestEntity_1.default);
|
|
219
|
+
(0, ts_mockito_1.when)(entityMock.getAllDatabaseFields()).thenReturn({ customIdField: id1 });
|
|
220
|
+
const entityInstance = (0, ts_mockito_1.instance)(entityMock);
|
|
221
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
|
|
216
222
|
await entityLoader.invalidateEntityAsync(entityInstance);
|
|
217
|
-
ts_mockito_1.verify(dataManagerMock.invalidateObjectFieldsAsync(ts_mockito_1.deepEqual({ customIdField: id1 }))).once();
|
|
223
|
+
(0, ts_mockito_1.verify)(dataManagerMock.invalidateObjectFieldsAsync((0, ts_mockito_1.deepEqual)({ customIdField: id1 }))).once();
|
|
218
224
|
});
|
|
219
225
|
it('returns error result when not allowed', async () => {
|
|
220
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
226
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
227
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
221
228
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
222
|
-
const privacyPolicyMock = ts_mockito_1.mock(TestEntity_1.TestEntityPrivacyPolicy);
|
|
223
|
-
const dataManagerMock = ts_mockito_1.mock();
|
|
224
|
-
const id1 = uuid_1.v4();
|
|
225
|
-
ts_mockito_1.when(dataManagerMock.loadManyByFieldEqualingAsync(ts_mockito_1.anything(), ts_mockito_1.anything(), ts_mockito_1.anything())).thenResolve(new Map().set(id1, [{ customIdField: id1 }]));
|
|
229
|
+
const privacyPolicyMock = (0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy);
|
|
230
|
+
const dataManagerMock = (0, ts_mockito_1.mock)();
|
|
231
|
+
const id1 = (0, uuid_1.v4)();
|
|
232
|
+
(0, ts_mockito_1.when)(dataManagerMock.loadManyByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve(new Map().set(id1, [{ customIdField: id1 }]));
|
|
226
233
|
const rejectionError = new Error();
|
|
227
|
-
ts_mockito_1.when(privacyPolicyMock.authorizeReadAsync(viewerContext, queryContext, ts_mockito_1.anyOfClass(TestEntity_1.default))).thenReject(rejectionError);
|
|
228
|
-
const privacyPolicy = ts_mockito_1.instance(privacyPolicyMock);
|
|
229
|
-
const dataManagerInstance = ts_mockito_1.instance(dataManagerMock);
|
|
230
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance);
|
|
234
|
+
(0, ts_mockito_1.when)(privacyPolicyMock.authorizeReadAsync(viewerContext, queryContext, (0, ts_mockito_1.anyOfClass)(TestEntity_1.default), (0, ts_mockito_1.anything)())).thenReject(rejectionError);
|
|
235
|
+
const privacyPolicy = (0, ts_mockito_1.instance)(privacyPolicyMock);
|
|
236
|
+
const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
|
|
237
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
|
|
231
238
|
const entityResult = await entityLoader.loadByIDAsync(id1);
|
|
232
239
|
expect(entityResult.ok).toBe(false);
|
|
233
240
|
expect(entityResult.reason).toEqual(rejectionError);
|
|
234
241
|
expect(entityResult.value).toBe(undefined);
|
|
235
242
|
});
|
|
236
243
|
it('throws upon database adapter error', async () => {
|
|
237
|
-
const viewerContext = ts_mockito_1.instance(ts_mockito_1.mock(ViewerContext_1.default));
|
|
244
|
+
const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
|
|
245
|
+
const metricsAdapter = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
|
|
238
246
|
const queryContext = StubQueryContextProvider_1.default.getQueryContext();
|
|
239
|
-
const privacyPolicy = ts_mockito_1.instance(ts_mockito_1.mock(TestEntity_1.TestEntityPrivacyPolicy));
|
|
240
|
-
const dataManagerMock = ts_mockito_1.mock();
|
|
247
|
+
const privacyPolicy = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(TestEntity_1.TestEntityPrivacyPolicy));
|
|
248
|
+
const dataManagerMock = (0, ts_mockito_1.mock)();
|
|
241
249
|
const error = new Error();
|
|
242
|
-
ts_mockito_1.when(dataManagerMock.loadManyByFieldEqualingAsync(ts_mockito_1.anything(), ts_mockito_1.anything(), ts_mockito_1.anything())).thenReject(error);
|
|
243
|
-
const dataManagerInstance = ts_mockito_1.instance(dataManagerMock);
|
|
244
|
-
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance);
|
|
245
|
-
const loadByValue = uuid_1.v4();
|
|
250
|
+
(0, ts_mockito_1.when)(dataManagerMock.loadManyByFieldEqualingAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenReject(error);
|
|
251
|
+
const dataManagerInstance = (0, ts_mockito_1.instance)(dataManagerMock);
|
|
252
|
+
const entityLoader = new EntityLoader_1.default(viewerContext, queryContext, TestEntity_1.testEntityConfiguration, TestEntity_1.default, privacyPolicy, dataManagerInstance, metricsAdapter);
|
|
253
|
+
const loadByValue = (0, uuid_1.v4)();
|
|
246
254
|
await expect(entityLoader.loadByIDAsync(loadByValue)).rejects.toEqual(error);
|
|
247
255
|
await expect(entityLoader.enforcing().loadByIDAsync(loadByValue)).rejects.toEqual(error);
|
|
248
256
|
await expect(entityLoader.loadManyByIDsAsync([loadByValue])).rejects.toEqual(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Entity_1 = __importDefault(require("../Entity"));
|
|
7
|
+
const EntityCompanionProvider_1 = require("../EntityCompanionProvider");
|
|
8
|
+
const EntityConfiguration_1 = __importDefault(require("../EntityConfiguration"));
|
|
9
|
+
const EntityFields_1 = require("../EntityFields");
|
|
10
|
+
const EntityMutationInfo_1 = require("../EntityMutationInfo");
|
|
11
|
+
const EntityMutationTriggerConfiguration_1 = require("../EntityMutationTriggerConfiguration");
|
|
12
|
+
const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
|
|
13
|
+
const ViewerContext_1 = __importDefault(require("../ViewerContext"));
|
|
14
|
+
const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysAllowPrivacyPolicyRule"));
|
|
15
|
+
const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
|
|
16
|
+
class BlahEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.createRules = [
|
|
20
|
+
new AlwaysAllowPrivacyPolicyRule_1.default(),
|
|
21
|
+
];
|
|
22
|
+
this.readRules = [
|
|
23
|
+
new AlwaysAllowPrivacyPolicyRule_1.default(),
|
|
24
|
+
];
|
|
25
|
+
this.updateRules = [
|
|
26
|
+
new AlwaysAllowPrivacyPolicyRule_1.default(),
|
|
27
|
+
];
|
|
28
|
+
this.deleteRules = [
|
|
29
|
+
new AlwaysAllowPrivacyPolicyRule_1.default(),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
class BlahEntity extends Entity_1.default {
|
|
34
|
+
static getCompanionDefinition() {
|
|
35
|
+
return blahCompanion;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const blahCompanion = new EntityCompanionProvider_1.EntityCompanionDefinition({
|
|
39
|
+
entityClass: BlahEntity,
|
|
40
|
+
entityConfiguration: new EntityConfiguration_1.default({
|
|
41
|
+
idField: 'id',
|
|
42
|
+
tableName: 'blah_table',
|
|
43
|
+
schema: {
|
|
44
|
+
id: new EntityFields_1.UUIDField({
|
|
45
|
+
columnName: 'id',
|
|
46
|
+
cache: true,
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
databaseAdapterFlavor: 'postgres',
|
|
50
|
+
cacheAdapterFlavor: 'redis',
|
|
51
|
+
}),
|
|
52
|
+
privacyPolicyClass: BlahEntityPrivacyPolicy,
|
|
53
|
+
mutationTriggers: () => ({
|
|
54
|
+
afterCommit: [new TestNonTransactionalMutationTrigger()],
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
class TestNonTransactionalMutationTrigger extends EntityMutationTriggerConfiguration_1.EntityNonTransactionalMutationTrigger {
|
|
58
|
+
async executeAsync(viewerContext, entity, mutationInfo) {
|
|
59
|
+
if (mutationInfo.type === EntityMutationInfo_1.EntityMutationType.DELETE) {
|
|
60
|
+
const entityLoaded = await BlahEntity.loader(viewerContext)
|
|
61
|
+
.enforcing()
|
|
62
|
+
.loadByIDNullableAsync(entity.getID());
|
|
63
|
+
if (entityLoaded) {
|
|
64
|
+
throw new Error('should not have been able to re-load the entity after delete. this means the cache has not been cleared');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
describe('EntityMutator', () => {
|
|
70
|
+
test('cache consistency with post-commit callbacks', async () => {
|
|
71
|
+
const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
|
|
72
|
+
const viewerContext = new ViewerContext_1.default(companionProvider);
|
|
73
|
+
// put it in cache
|
|
74
|
+
const entity = await BlahEntity.creator(viewerContext).enforceCreateAsync();
|
|
75
|
+
const entityLoaded = await BlahEntity.loader(viewerContext)
|
|
76
|
+
.enforcing()
|
|
77
|
+
.loadByIDAsync(entity.getID());
|
|
78
|
+
await BlahEntity.enforceDeleteAsync(entityLoaded);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=EntityMutator-MutationCacheConsistency-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutator-MutationCacheConsistency-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityMutator-MutationCacheConsistency-test.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,wEAAuE;AACvE,iFAAyD;AACzD,kDAA4C;AAC5C,8DAAsF;AACtF,8FAA8F;AAC9F,iFAAyD;AACzD,qEAA6C;AAC7C,yGAAiF;AACjF,kHAA+G;AAM/G,MAAM,uBAAwB,SAAQ,6BAKrC;IALD;;QAM8B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;IACJ,CAAC;CAAA;AAED,MAAM,UAAW,SAAQ,gBAAyC;IAChE,MAAM,CAAC,sBAAsB;QAO3B,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAED,MAAM,aAAa,GAAG,IAAI,mDAAyB,CAAC;IAClD,WAAW,EAAE,UAAU;IACvB,mBAAmB,EAAE,IAAI,6BAAmB,CAAa;QACvD,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE;YACN,EAAE,EAAE,IAAI,wBAAS,CAAC;gBAChB,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC;SACH;QACD,qBAAqB,EAAE,UAAU;QACjC,kBAAkB,EAAE,OAAO;KAC5B,CAAC;IACF,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;QACvB,WAAW,EAAE,CAAC,IAAI,mCAAmC,EAAE,CAAC;KACzD,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mCAAoC,SAAQ,0EAKjD;IACC,KAAK,CAAC,YAAY,CAChB,aAA4B,EAC5B,MAAkB,EAClB,YAAsF;QAEtF,IAAI,YAAY,CAAC,IAAI,KAAK,uCAAkB,CAAC,MAAM,EAAE;YACnD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;iBACxD,SAAS,EAAE;iBACX,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,IAAI,YAAY,EAAE;gBAChB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;aACH;SACF;IACH,CAAC;CACF;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;QAE3D,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC5E,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;aACxD,SAAS,EAAE;aACX,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjC,MAAM,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|