@expo/entity-cache-adapter-redis 0.34.0 → 0.35.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/__integration-tests__/BatchedRedisCacheAdapter-integration-test.js +8 -12
- package/build/__integration-tests__/BatchedRedisCacheAdapter-integration-test.js.map +1 -1
- package/build/__integration-tests__/GenericRedisCacher-full-integration-test.js +11 -17
- package/build/__integration-tests__/GenericRedisCacher-full-integration-test.js.map +1 -1
- package/build/__integration-tests__/GenericRedisCacher-integration-test.js +2 -2
- package/build/__integration-tests__/GenericRedisCacher-integration-test.js.map +1 -1
- package/build/__integration-tests__/errors-test.js +1 -3
- package/build/__integration-tests__/errors-test.js.map +1 -1
- package/package.json +3 -3
- package/src/__integration-tests__/BatchedRedisCacheAdapter-integration-test.ts +12 -36
- package/src/__integration-tests__/GenericRedisCacher-full-integration-test.ts +15 -50
- package/src/__integration-tests__/GenericRedisCacher-integration-test.ts +2 -8
- package/src/__integration-tests__/errors-test.ts +1 -6
|
@@ -73,7 +73,7 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
73
73
|
const mgetSpy = jest.spyOn(redis, 'mget');
|
|
74
74
|
const genericCacher = viewerContext.entityCompanionProvider.getCompanionForEntity(RedisTestEntity_1.default)['tableDataCoordinator']['cacheAdapter']['genericCacher'];
|
|
75
75
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
76
|
-
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext
|
|
76
|
+
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
77
77
|
.setField('name', 'blah')
|
|
78
78
|
.enforceCreateAsync();
|
|
79
79
|
// loading an entity should put it in cache. load by multiple requests and multiple fields in same tick to ensure batch works
|
|
@@ -82,13 +82,9 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
82
82
|
const viewerContext2 = new entity_1.ViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
83
83
|
const viewerContext3 = new entity_1.ViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
84
84
|
const [entity1, entity2, entity3] = await Promise.all([
|
|
85
|
-
RedisTestEntity_1.default.loader(viewerContext1
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
RedisTestEntity_1.default.loader(viewerContext2, viewerContext2.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres'))
|
|
89
|
-
.enforcing()
|
|
90
|
-
.loadByIDAsync(entity1Created.getID()),
|
|
91
|
-
RedisTestEntity_1.default.loader(viewerContext3, viewerContext3.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres'))
|
|
85
|
+
RedisTestEntity_1.default.loader(viewerContext1).enforcing().loadByIDAsync(entity1Created.getID()),
|
|
86
|
+
RedisTestEntity_1.default.loader(viewerContext2).enforcing().loadByIDAsync(entity1Created.getID()),
|
|
87
|
+
RedisTestEntity_1.default.loader(viewerContext3)
|
|
92
88
|
.enforcing()
|
|
93
89
|
.loadByFieldEqualingAsync('name', entity1Created.getField('name')),
|
|
94
90
|
]);
|
|
@@ -104,22 +100,22 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
104
100
|
name: 'blah',
|
|
105
101
|
});
|
|
106
102
|
const cacheKeyEntity1NameField = cacheKeyMaker('name', entity1Created.getField('name'));
|
|
107
|
-
await RedisTestEntity_1.default.loader(viewerContext
|
|
103
|
+
await RedisTestEntity_1.default.loader(viewerContext)
|
|
108
104
|
.enforcing()
|
|
109
105
|
.loadByFieldEqualingAsync('name', entity1Created.getField('name'));
|
|
110
106
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toEqual(cachedJSON);
|
|
111
107
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
112
108
|
const nonExistentId = (0, uuid_1.v4)();
|
|
113
|
-
const entityNonExistentResult = await RedisTestEntity_1.default.loader(viewerContext
|
|
109
|
+
const entityNonExistentResult = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(nonExistentId);
|
|
114
110
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
115
111
|
const cacheKeyNonExistent = cacheKeyMaker('id', nonExistentId);
|
|
116
112
|
const nonExistentCachedValue = await redis.get(cacheKeyNonExistent);
|
|
117
113
|
expect(nonExistentCachedValue).toEqual('');
|
|
118
114
|
// load again through entities framework to ensure it reads negative result
|
|
119
|
-
const entityNonExistentResult2 = await RedisTestEntity_1.default.loader(viewerContext
|
|
115
|
+
const entityNonExistentResult2 = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(nonExistentId);
|
|
120
116
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
121
117
|
// invalidate from cache to ensure it invalidates correctly in both caches
|
|
122
|
-
await RedisTestEntity_1.default.loader(viewerContext
|
|
118
|
+
await RedisTestEntity_1.default.loader(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
123
119
|
await expect(redis.get(cacheKeyEntity1)).resolves.toBeNull();
|
|
124
120
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toBeNull();
|
|
125
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchedRedisCacheAdapter-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/BatchedRedisCacheAdapter-integration-test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BatchedRedisCacheAdapter-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/BatchedRedisCacheAdapter-integration-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,11 +38,11 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
38
38
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
39
39
|
const genericCacher = viewerContext.entityCompanionProvider.getCompanionForEntity(RedisTestEntity_1.default)['tableDataCoordinator']['cacheAdapter']['genericCacher'];
|
|
40
40
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
41
|
-
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext
|
|
41
|
+
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
42
42
|
.setField('name', 'blah')
|
|
43
43
|
.enforceCreateAsync();
|
|
44
44
|
// loading an entity should put it in cache
|
|
45
|
-
const entity1 = await RedisTestEntity_1.default.loader(viewerContext
|
|
45
|
+
const entity1 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
46
46
|
.enforcing()
|
|
47
47
|
.loadByIDAsync(entity1Created.getID());
|
|
48
48
|
const cachedJSON = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', entity1.getID()));
|
|
@@ -53,48 +53,42 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
53
53
|
});
|
|
54
54
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
55
55
|
const nonExistentId = (0, uuid_1.v4)();
|
|
56
|
-
const entityNonExistentResult = await RedisTestEntity_1.default.loader(viewerContext
|
|
56
|
+
const entityNonExistentResult = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(nonExistentId);
|
|
57
57
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
58
58
|
const nonExistentCachedValue = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', nonExistentId));
|
|
59
59
|
expect(nonExistentCachedValue).toEqual('');
|
|
60
60
|
// load again through entities framework to ensure it reads negative result
|
|
61
|
-
const entityNonExistentResult2 = await RedisTestEntity_1.default.loader(viewerContext
|
|
61
|
+
const entityNonExistentResult2 = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(nonExistentId);
|
|
62
62
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
63
63
|
// invalidate from cache to ensure it invalidates correctly
|
|
64
|
-
await RedisTestEntity_1.default.loader(viewerContext
|
|
64
|
+
await RedisTestEntity_1.default.loader(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
65
65
|
const cachedValueNull = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', entity1.getID()));
|
|
66
66
|
expect(cachedValueNull).toBe(null);
|
|
67
67
|
});
|
|
68
68
|
it('caches and restores date fields', async () => {
|
|
69
69
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
70
70
|
const date = new Date();
|
|
71
|
-
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creator(viewerContext
|
|
72
|
-
.setField('dateField', date)
|
|
73
|
-
.createAsync());
|
|
71
|
+
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creator(viewerContext).setField('dateField', date).createAsync());
|
|
74
72
|
expect(entity1.getField('dateField')).toEqual(date);
|
|
75
|
-
const entity2 = await RedisTestEntity_1.default.loader(viewerContext
|
|
73
|
+
const entity2 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
76
74
|
.enforcing()
|
|
77
75
|
.loadByIDAsync(entity1.getID());
|
|
78
76
|
expect(entity2.getField('dateField')).toEqual(date);
|
|
79
77
|
// simulate new request
|
|
80
78
|
const vc2 = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
81
|
-
const entity3 = await RedisTestEntity_1.default.loader(vc2
|
|
82
|
-
.enforcing()
|
|
83
|
-
.loadByIDAsync(entity1.getID());
|
|
79
|
+
const entity3 = await RedisTestEntity_1.default.loader(vc2).enforcing().loadByIDAsync(entity1.getID());
|
|
84
80
|
expect(entity3.getField('dateField')).toEqual(date);
|
|
85
81
|
});
|
|
86
82
|
it('caches and restores empty string field keys', async () => {
|
|
87
83
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
88
|
-
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creator(viewerContext
|
|
89
|
-
|
|
90
|
-
.createAsync());
|
|
91
|
-
const entity2 = await RedisTestEntity_1.default.loader(viewerContext, viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres'))
|
|
84
|
+
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creator(viewerContext).setField('name', '').createAsync());
|
|
85
|
+
const entity2 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
92
86
|
.enforcing()
|
|
93
87
|
.loadByFieldEqualingAsync('name', '');
|
|
94
88
|
expect(entity2?.getID()).toEqual(entity1.getID());
|
|
95
89
|
// simulate new request
|
|
96
90
|
const vc2 = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
97
|
-
const entity3 = await RedisTestEntity_1.default.loader(vc2
|
|
91
|
+
const entity3 = await RedisTestEntity_1.default.loader(vc2)
|
|
98
92
|
.enforcing()
|
|
99
93
|
.loadByFieldEqualingAsync('name', '');
|
|
100
94
|
expect(entity3?.getID()).toEqual(entity1.getID());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRedisCacher-full-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/GenericRedisCacher-full-integration-test.ts"],"names":[],"mappings":";;;;;AAAA,yCAA6C;AAC7C,2CAAmD;AACnD,sDAA4B;AAC5B,6BAA0B;AAC1B,+BAAoC;AAEpC,+EAAqF;AACrF,sFAA8D;AAC9D,yIAAsI;AAEtI,MAAM,iBAAkB,SAAQ,sBAAa;CAAG;AAEhD,QAAQ,CAAC,4BAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,wBAAkD,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,GAAG;YACzB,WAAW,EAAE,IAAI,iBAAK,CAAC,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrE,SAAS,CAAC,GAAG,KAAe;gBAC1B,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,CAChE,CAAC;gBACF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,cAAc,EAAE,OAAO;YACvB,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,GAAG,EAAE,aAAa;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAO,wBAAwB,CAAC,WAAqB,CAAC,OAAO,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,IAAI,EAAE;QACjB,wBAAwB,CAAC,WAAqB,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CACzC,IAAA,qGAAiD,EAAC,wBAAwB,CAAC,CAC5E,CAAC;QACF,MAAM,aAAa,GACjB,aAAa,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,yBAAe,CAAC,CAC1E,sBAAsB,CACvB,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExE,MAAM,cAAc,GAAG,MAAM,yBAAe,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"GenericRedisCacher-full-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/GenericRedisCacher-full-integration-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
59
59
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
60
60
|
const genericRedisCacher = new GenericRedisCacher_1.default(genericRedisCacheContext, RedisTestEntity_1.redisTestEntityConfiguration);
|
|
61
61
|
const date = new Date();
|
|
62
|
-
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext
|
|
62
|
+
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
63
63
|
.setField('name', 'blah')
|
|
64
64
|
.setField('dateField', date)
|
|
65
65
|
.enforceCreateAsync();
|
|
@@ -94,7 +94,7 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
94
94
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
95
95
|
const genericRedisCacher = new GenericRedisCacher_1.default(genericRedisCacheContext, RedisTestEntity_1.redisTestEntityConfiguration);
|
|
96
96
|
const date = new Date();
|
|
97
|
-
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext
|
|
97
|
+
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
98
98
|
.setField('name', 'blah')
|
|
99
99
|
.setField('dateField', date)
|
|
100
100
|
.enforceCreateAsync();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRedisCacher-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/GenericRedisCacher-integration-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA0D;AAC1D,sDAA4B;AAC5B,6BAA0B;AAE1B,+EAAqF;AACrF,mFAGyC;AACzC,yIAAsI;AAEtI,MAAM,iBAAkB,SAAQ,sBAAa;CAAG;AAEhD,QAAQ,CAAC,4BAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,wBAAkD,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,GAAG;YACzB,WAAW,EAAE,IAAI,iBAAK,CAAC,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrE,SAAS,CAAC,GAAG,KAAe;gBAC1B,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,CAChE,CAAC;gBACF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,cAAc,EAAE,OAAO;YACvB,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,GAAG,EAAE,aAAa;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAO,wBAAwB,CAAC,WAAqB,CAAC,OAAO,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,IAAI,EAAE;QACjB,wBAAwB,CAAC,WAAqB,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,aAAa,GAAG,IAAI,iBAAiB,CACzC,IAAA,qGAAiD,EAAC,wBAAwB,CAAC,CAC5E,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,4BAAkB,CAC/C,wBAAwB,EACxB,8CAA4B,CAC7B,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,MAAM,yBAAe,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"GenericRedisCacher-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/GenericRedisCacher-integration-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,7 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
33
33
|
it('throws when redis is disconnected', async () => {
|
|
34
34
|
redisClient.disconnect();
|
|
35
35
|
const vc1 = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
36
|
-
await expect(RedisTestEntity_1.default.creator(vc1
|
|
37
|
-
.setField('name', 'blah')
|
|
38
|
-
.enforceCreateAsync()).rejects.toThrow(entity_1.EntityCacheAdapterTransientError);
|
|
36
|
+
await expect(RedisTestEntity_1.default.creator(vc1).setField('name', 'blah').enforceCreateAsync()).rejects.toThrow(entity_1.EntityCacheAdapterTransientError);
|
|
39
37
|
});
|
|
40
38
|
});
|
|
41
39
|
//# sourceMappingURL=errors-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/errors-test.ts"],"names":[],"mappings":";;;;;AAAA,yCAA+E;AAC/E,sDAA4B;AAC5B,6BAA0B;AAE1B,+EAAqF;AACrF,sFAA8D;AAC9D,yIAAsI;AAEtI,MAAM,iBAAkB,SAAQ,sBAAa;CAAG;AAEhD,QAAQ,CAAC,4BAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,IAAI,iBAAK,CAAC,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,IAAI,wBAAkD,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,GAAG;YACzB,WAAW;YACX,SAAS,CAAC,GAAG,KAAe;gBAC1B,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,CAChE,CAAC;gBACF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,cAAc,EAAE,OAAO;YACvB,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,GAAG,EAAE,aAAa;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,WAAW,CAAC,UAAU,EAAE,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAC/B,IAAA,qGAAiD,EAAC,wBAAwB,CAAC,CAC5E,CAAC;QAEF,MAAM,MAAM,CACV,yBAAe,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"errors-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/errors-test.ts"],"names":[],"mappings":";;;;;AAAA,yCAA+E;AAC/E,sDAA4B;AAC5B,6BAA0B;AAE1B,+EAAqF;AACrF,sFAA8D;AAC9D,yIAAsI;AAEtI,MAAM,iBAAkB,SAAQ,sBAAa;CAAG;AAEhD,QAAQ,CAAC,4BAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,IAAI,iBAAK,CAAC,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,IAAI,wBAAkD,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,GAAG;YACzB,WAAW;YACX,SAAS,CAAC,GAAG,KAAe;gBAC1B,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,CAChE,CAAC;gBACF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,cAAc,EAAE,OAAO;YACvB,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,GAAG,EAAE,aAAa;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,WAAW,CAAC,UAAU,EAAE,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAC/B,IAAA,qGAAiD,EAAC,wBAAwB,CAAC,CAC5E,CAAC;QAEF,MAAM,MAAM,CACV,yBAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,yCAAgC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/entity-cache-adapter-redis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "Redis cache adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"ioredis": ">=5"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@expo/entity": "^0.
|
|
34
|
+
"@expo/entity": "^0.35.0",
|
|
35
35
|
"ioredis": "^5.2.5"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "33771295c5da92768114c6cdd1f48936435853cc"
|
|
38
38
|
}
|
|
@@ -101,10 +101,7 @@ describe(GenericRedisCacher, () => {
|
|
|
101
101
|
]['cacheAdapter']['genericCacher'];
|
|
102
102
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
103
103
|
|
|
104
|
-
const entity1Created = await RedisTestEntity.creator(
|
|
105
|
-
viewerContext,
|
|
106
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
107
|
-
)
|
|
104
|
+
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
108
105
|
.setField('name', 'blah')
|
|
109
106
|
.enforceCreateAsync();
|
|
110
107
|
|
|
@@ -120,22 +117,9 @@ describe(GenericRedisCacher, () => {
|
|
|
120
117
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext)
|
|
121
118
|
);
|
|
122
119
|
const [entity1, entity2, entity3] = await Promise.all([
|
|
123
|
-
RedisTestEntity.loader(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
)
|
|
127
|
-
.enforcing()
|
|
128
|
-
.loadByIDAsync(entity1Created.getID()),
|
|
129
|
-
RedisTestEntity.loader(
|
|
130
|
-
viewerContext2,
|
|
131
|
-
viewerContext2.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
132
|
-
)
|
|
133
|
-
.enforcing()
|
|
134
|
-
.loadByIDAsync(entity1Created.getID()),
|
|
135
|
-
RedisTestEntity.loader(
|
|
136
|
-
viewerContext3,
|
|
137
|
-
viewerContext3.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
138
|
-
)
|
|
120
|
+
RedisTestEntity.loader(viewerContext1).enforcing().loadByIDAsync(entity1Created.getID()),
|
|
121
|
+
RedisTestEntity.loader(viewerContext2).enforcing().loadByIDAsync(entity1Created.getID()),
|
|
122
|
+
RedisTestEntity.loader(viewerContext3)
|
|
139
123
|
.enforcing()
|
|
140
124
|
.loadByFieldEqualingAsync('name', entity1Created.getField('name')),
|
|
141
125
|
]);
|
|
@@ -154,36 +138,28 @@ describe(GenericRedisCacher, () => {
|
|
|
154
138
|
});
|
|
155
139
|
|
|
156
140
|
const cacheKeyEntity1NameField = cacheKeyMaker('name', entity1Created.getField('name'));
|
|
157
|
-
await RedisTestEntity.loader(
|
|
158
|
-
viewerContext,
|
|
159
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
160
|
-
)
|
|
141
|
+
await RedisTestEntity.loader(viewerContext)
|
|
161
142
|
.enforcing()
|
|
162
143
|
.loadByFieldEqualingAsync('name', entity1Created.getField('name'));
|
|
163
144
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toEqual(cachedJSON);
|
|
164
145
|
|
|
165
146
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
166
147
|
const nonExistentId = uuidv4();
|
|
167
|
-
const entityNonExistentResult = await RedisTestEntity.loader(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
).loadByIDAsync(nonExistentId);
|
|
148
|
+
const entityNonExistentResult = await RedisTestEntity.loader(viewerContext).loadByIDAsync(
|
|
149
|
+
nonExistentId
|
|
150
|
+
);
|
|
171
151
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
172
152
|
const cacheKeyNonExistent = cacheKeyMaker('id', nonExistentId);
|
|
173
153
|
const nonExistentCachedValue = await redis.get(cacheKeyNonExistent);
|
|
174
154
|
expect(nonExistentCachedValue).toEqual('');
|
|
175
155
|
// load again through entities framework to ensure it reads negative result
|
|
176
|
-
const entityNonExistentResult2 = await RedisTestEntity.loader(
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
).loadByIDAsync(nonExistentId);
|
|
156
|
+
const entityNonExistentResult2 = await RedisTestEntity.loader(viewerContext).loadByIDAsync(
|
|
157
|
+
nonExistentId
|
|
158
|
+
);
|
|
180
159
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
181
160
|
|
|
182
161
|
// invalidate from cache to ensure it invalidates correctly in both caches
|
|
183
|
-
await RedisTestEntity.loader(
|
|
184
|
-
viewerContext,
|
|
185
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
186
|
-
).invalidateFieldsAsync(entity1.getAllFields());
|
|
162
|
+
await RedisTestEntity.loader(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
187
163
|
await expect(redis.get(cacheKeyEntity1)).resolves.toBeNull();
|
|
188
164
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toBeNull();
|
|
189
165
|
});
|
|
@@ -46,18 +46,12 @@ describe(GenericRedisCacher, () => {
|
|
|
46
46
|
]['cacheAdapter']['genericCacher'];
|
|
47
47
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
48
48
|
|
|
49
|
-
const entity1Created = await RedisTestEntity.creator(
|
|
50
|
-
viewerContext,
|
|
51
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
52
|
-
)
|
|
49
|
+
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
53
50
|
.setField('name', 'blah')
|
|
54
51
|
.enforceCreateAsync();
|
|
55
52
|
|
|
56
53
|
// loading an entity should put it in cache
|
|
57
|
-
const entity1 = await RedisTestEntity.loader(
|
|
58
|
-
viewerContext,
|
|
59
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
60
|
-
)
|
|
54
|
+
const entity1 = await RedisTestEntity.loader(viewerContext)
|
|
61
55
|
.enforcing()
|
|
62
56
|
.loadByIDAsync(entity1Created.getID());
|
|
63
57
|
|
|
@@ -73,10 +67,9 @@ describe(GenericRedisCacher, () => {
|
|
|
73
67
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
74
68
|
const nonExistentId = uuidv4();
|
|
75
69
|
|
|
76
|
-
const entityNonExistentResult = await RedisTestEntity.loader(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
).loadByIDAsync(nonExistentId);
|
|
70
|
+
const entityNonExistentResult = await RedisTestEntity.loader(viewerContext).loadByIDAsync(
|
|
71
|
+
nonExistentId
|
|
72
|
+
);
|
|
80
73
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
81
74
|
|
|
82
75
|
const nonExistentCachedValue = await (genericRedisCacheContext.redisClient as Redis).get(
|
|
@@ -85,17 +78,13 @@ describe(GenericRedisCacher, () => {
|
|
|
85
78
|
expect(nonExistentCachedValue).toEqual('');
|
|
86
79
|
|
|
87
80
|
// load again through entities framework to ensure it reads negative result
|
|
88
|
-
const entityNonExistentResult2 = await RedisTestEntity.loader(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
).loadByIDAsync(nonExistentId);
|
|
81
|
+
const entityNonExistentResult2 = await RedisTestEntity.loader(viewerContext).loadByIDAsync(
|
|
82
|
+
nonExistentId
|
|
83
|
+
);
|
|
92
84
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
93
85
|
|
|
94
86
|
// invalidate from cache to ensure it invalidates correctly
|
|
95
|
-
await RedisTestEntity.loader(
|
|
96
|
-
viewerContext,
|
|
97
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
98
|
-
).invalidateFieldsAsync(entity1.getAllFields());
|
|
87
|
+
await RedisTestEntity.loader(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
99
88
|
const cachedValueNull = await (genericRedisCacheContext.redisClient as Redis).get(
|
|
100
89
|
cacheKeyMaker('id', entity1.getID())
|
|
101
90
|
);
|
|
@@ -108,19 +97,11 @@ describe(GenericRedisCacher, () => {
|
|
|
108
97
|
);
|
|
109
98
|
const date = new Date();
|
|
110
99
|
const entity1 = await enforceAsyncResult(
|
|
111
|
-
RedisTestEntity.creator(
|
|
112
|
-
viewerContext,
|
|
113
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
114
|
-
)
|
|
115
|
-
.setField('dateField', date)
|
|
116
|
-
.createAsync()
|
|
100
|
+
RedisTestEntity.creator(viewerContext).setField('dateField', date).createAsync()
|
|
117
101
|
);
|
|
118
102
|
expect(entity1.getField('dateField')).toEqual(date);
|
|
119
103
|
|
|
120
|
-
const entity2 = await RedisTestEntity.loader(
|
|
121
|
-
viewerContext,
|
|
122
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
123
|
-
)
|
|
104
|
+
const entity2 = await RedisTestEntity.loader(viewerContext)
|
|
124
105
|
.enforcing()
|
|
125
106
|
.loadByIDAsync(entity1.getID());
|
|
126
107
|
expect(entity2.getField('dateField')).toEqual(date);
|
|
@@ -129,12 +110,7 @@ describe(GenericRedisCacher, () => {
|
|
|
129
110
|
const vc2 = new TestViewerContext(
|
|
130
111
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext)
|
|
131
112
|
);
|
|
132
|
-
const entity3 = await RedisTestEntity.loader(
|
|
133
|
-
vc2,
|
|
134
|
-
vc2.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
135
|
-
)
|
|
136
|
-
.enforcing()
|
|
137
|
-
.loadByIDAsync(entity1.getID());
|
|
113
|
+
const entity3 = await RedisTestEntity.loader(vc2).enforcing().loadByIDAsync(entity1.getID());
|
|
138
114
|
expect(entity3.getField('dateField')).toEqual(date);
|
|
139
115
|
});
|
|
140
116
|
|
|
@@ -143,17 +119,9 @@ describe(GenericRedisCacher, () => {
|
|
|
143
119
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext)
|
|
144
120
|
);
|
|
145
121
|
const entity1 = await enforceAsyncResult(
|
|
146
|
-
RedisTestEntity.creator(
|
|
147
|
-
viewerContext,
|
|
148
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
149
|
-
)
|
|
150
|
-
.setField('name', '')
|
|
151
|
-
.createAsync()
|
|
122
|
+
RedisTestEntity.creator(viewerContext).setField('name', '').createAsync()
|
|
152
123
|
);
|
|
153
|
-
const entity2 = await RedisTestEntity.loader(
|
|
154
|
-
viewerContext,
|
|
155
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
156
|
-
)
|
|
124
|
+
const entity2 = await RedisTestEntity.loader(viewerContext)
|
|
157
125
|
.enforcing()
|
|
158
126
|
.loadByFieldEqualingAsync('name', '');
|
|
159
127
|
expect(entity2?.getID()).toEqual(entity1.getID());
|
|
@@ -162,10 +130,7 @@ describe(GenericRedisCacher, () => {
|
|
|
162
130
|
const vc2 = new TestViewerContext(
|
|
163
131
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext)
|
|
164
132
|
);
|
|
165
|
-
const entity3 = await RedisTestEntity.loader(
|
|
166
|
-
vc2,
|
|
167
|
-
vc2.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
168
|
-
)
|
|
133
|
+
const entity3 = await RedisTestEntity.loader(vc2)
|
|
169
134
|
.enforcing()
|
|
170
135
|
.loadByFieldEqualingAsync('name', '');
|
|
171
136
|
expect(entity3?.getID()).toEqual(entity1.getID());
|
|
@@ -46,10 +46,7 @@ describe(GenericRedisCacher, () => {
|
|
|
46
46
|
redisTestEntityConfiguration
|
|
47
47
|
);
|
|
48
48
|
const date = new Date();
|
|
49
|
-
const entity1Created = await RedisTestEntity.creator(
|
|
50
|
-
viewerContext,
|
|
51
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
52
|
-
)
|
|
49
|
+
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
53
50
|
.setField('name', 'blah')
|
|
54
51
|
.setField('dateField', date)
|
|
55
52
|
.enforceCreateAsync();
|
|
@@ -95,10 +92,7 @@ describe(GenericRedisCacher, () => {
|
|
|
95
92
|
redisTestEntityConfiguration
|
|
96
93
|
);
|
|
97
94
|
const date = new Date();
|
|
98
|
-
const entity1Created = await RedisTestEntity.creator(
|
|
99
|
-
viewerContext,
|
|
100
|
-
viewerContext.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
101
|
-
)
|
|
95
|
+
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
102
96
|
.setField('name', 'blah')
|
|
103
97
|
.setField('dateField', date)
|
|
104
98
|
.enforceCreateAsync();
|
|
@@ -40,12 +40,7 @@ describe(GenericRedisCacher, () => {
|
|
|
40
40
|
);
|
|
41
41
|
|
|
42
42
|
await expect(
|
|
43
|
-
RedisTestEntity.creator(
|
|
44
|
-
vc1,
|
|
45
|
-
vc1.getNonTransactionalQueryContextForDatabaseAdaptorFlavor('postgres')
|
|
46
|
-
)
|
|
47
|
-
.setField('name', 'blah')
|
|
48
|
-
.enforceCreateAsync()
|
|
43
|
+
RedisTestEntity.creator(vc1).setField('name', 'blah').enforceCreateAsync()
|
|
49
44
|
).rejects.toThrow(EntityCacheAdapterTransientError);
|
|
50
45
|
});
|
|
51
46
|
});
|