@expo/entity-cache-adapter-redis 0.40.0 → 0.41.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 +7 -18
- package/build/__integration-tests__/BatchedRedisCacheAdapter-integration-test.js.map +1 -1
- package/build/__integration-tests__/GenericRedisCacher-full-integration-test.js +10 -27
- package/build/__integration-tests__/GenericRedisCacher-full-integration-test.js.map +1 -1
- package/build/__integration-tests__/GenericRedisCacher-integration-test.js +0 -2
- package/build/__integration-tests__/GenericRedisCacher-integration-test.js.map +1 -1
- package/build/__integration-tests__/errors-test.js +1 -1
- package/build/__integration-tests__/errors-test.js.map +1 -1
- package/package.json +3 -3
- package/src/__integration-tests__/BatchedRedisCacheAdapter-integration-test.ts +19 -18
- package/src/__integration-tests__/GenericRedisCacher-full-integration-test.ts +21 -27
- package/src/__integration-tests__/GenericRedisCacher-integration-test.ts +0 -2
- package/src/__integration-tests__/errors-test.ts +1 -1
|
@@ -77,7 +77,6 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
77
77
|
const genericCacher = viewerContext.entityCompanionProvider.getCompanionForEntity(RedisTestEntity_1.default)['tableDataCoordinator']['cacheAdapter']['genericCacher'];
|
|
78
78
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
79
79
|
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
80
|
-
.enforcing()
|
|
81
80
|
.setField('name', 'blah')
|
|
82
81
|
.createAsync();
|
|
83
82
|
// loading an entity should put it in cache. load by multiple requests and multiple fields in same tick to ensure batch works
|
|
@@ -86,11 +85,9 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
86
85
|
const viewerContext2 = new entity_1.ViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
87
86
|
const viewerContext3 = new entity_1.ViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
88
87
|
const [entity1, entity2, entity3] = await Promise.all([
|
|
89
|
-
RedisTestEntity_1.default.loader(viewerContext1).
|
|
90
|
-
RedisTestEntity_1.default.loader(viewerContext2).
|
|
91
|
-
RedisTestEntity_1.default.loader(viewerContext3)
|
|
92
|
-
.enforcing()
|
|
93
|
-
.loadByFieldEqualingAsync('name', entity1Created.getField('name')),
|
|
88
|
+
RedisTestEntity_1.default.loader(viewerContext1).loadByIDAsync(entity1Created.getID()),
|
|
89
|
+
RedisTestEntity_1.default.loader(viewerContext2).loadByIDAsync(entity1Created.getID()),
|
|
90
|
+
RedisTestEntity_1.default.loader(viewerContext3).loadByFieldEqualingAsync('name', entity1Created.getField('name')),
|
|
94
91
|
]);
|
|
95
92
|
expect(mgetSpy).toHaveBeenCalledTimes(1);
|
|
96
93
|
expect(mgetSpy.mock.calls[0]).toHaveLength(2); // should dedupe the first two loads
|
|
@@ -104,28 +101,20 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
104
101
|
name: 'blah',
|
|
105
102
|
});
|
|
106
103
|
const cacheKeyEntity1NameField = cacheKeyMaker('name', entity1Created.getField('name'));
|
|
107
|
-
await RedisTestEntity_1.default.loader(viewerContext)
|
|
108
|
-
.enforcing()
|
|
109
|
-
.loadByFieldEqualingAsync('name', entity1Created.getField('name'));
|
|
104
|
+
await RedisTestEntity_1.default.loader(viewerContext).loadByFieldEqualingAsync('name', entity1Created.getField('name'));
|
|
110
105
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toEqual(cachedJSON);
|
|
111
106
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
112
107
|
const nonExistentId = (0, uuid_1.v4)();
|
|
113
|
-
const entityNonExistentResult = await RedisTestEntity_1.default.
|
|
114
|
-
.withAuthorizationResults()
|
|
115
|
-
.loadByIDAsync(nonExistentId);
|
|
108
|
+
const entityNonExistentResult = await RedisTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
116
109
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
117
110
|
const cacheKeyNonExistent = cacheKeyMaker('id', nonExistentId);
|
|
118
111
|
const nonExistentCachedValue = await redis.get(cacheKeyNonExistent);
|
|
119
112
|
expect(nonExistentCachedValue).toEqual('');
|
|
120
113
|
// load again through entities framework to ensure it reads negative result
|
|
121
|
-
const entityNonExistentResult2 = await RedisTestEntity_1.default.
|
|
122
|
-
.withAuthorizationResults()
|
|
123
|
-
.loadByIDAsync(nonExistentId);
|
|
114
|
+
const entityNonExistentResult2 = await RedisTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
124
115
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
125
116
|
// invalidate from cache to ensure it invalidates correctly in both caches
|
|
126
|
-
await RedisTestEntity_1.default.
|
|
127
|
-
.utils()
|
|
128
|
-
.invalidateFieldsAsync(entity1.getAllFields());
|
|
117
|
+
await RedisTestEntity_1.default.loaderUtils(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
129
118
|
await expect(redis.get(cacheKeyEntity1)).resolves.toBeNull();
|
|
130
119
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toBeNull();
|
|
131
120
|
});
|
|
@@ -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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"}
|
|
@@ -39,13 +39,10 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
39
39
|
const genericCacher = viewerContext.entityCompanionProvider.getCompanionForEntity(RedisTestEntity_1.default)['tableDataCoordinator']['cacheAdapter']['genericCacher'];
|
|
40
40
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
41
41
|
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
42
|
-
.enforcing()
|
|
43
42
|
.setField('name', 'blah')
|
|
44
43
|
.createAsync();
|
|
45
44
|
// loading an entity should put it in cache
|
|
46
|
-
const entity1 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
47
|
-
.enforcing()
|
|
48
|
-
.loadByIDAsync(entity1Created.getID());
|
|
45
|
+
const entity1 = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(entity1Created.getID());
|
|
49
46
|
const cachedJSON = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', entity1.getID()));
|
|
50
47
|
const cachedValue = JSON.parse(cachedJSON);
|
|
51
48
|
expect(cachedValue).toMatchObject({
|
|
@@ -54,56 +51,42 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
54
51
|
});
|
|
55
52
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
56
53
|
const nonExistentId = (0, uuid_1.v4)();
|
|
57
|
-
const entityNonExistentResult = await RedisTestEntity_1.default.
|
|
58
|
-
.withAuthorizationResults()
|
|
59
|
-
.loadByIDAsync(nonExistentId);
|
|
54
|
+
const entityNonExistentResult = await RedisTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
60
55
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
61
56
|
const nonExistentCachedValue = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', nonExistentId));
|
|
62
57
|
expect(nonExistentCachedValue).toEqual('');
|
|
63
58
|
// load again through entities framework to ensure it reads negative result
|
|
64
|
-
const entityNonExistentResult2 = await RedisTestEntity_1.default.
|
|
65
|
-
.withAuthorizationResults()
|
|
66
|
-
.loadByIDAsync(nonExistentId);
|
|
59
|
+
const entityNonExistentResult2 = await RedisTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
67
60
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
68
61
|
// invalidate from cache to ensure it invalidates correctly
|
|
69
|
-
await RedisTestEntity_1.default.
|
|
70
|
-
.utils()
|
|
71
|
-
.invalidateFieldsAsync(entity1.getAllFields());
|
|
62
|
+
await RedisTestEntity_1.default.loaderUtils(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
72
63
|
const cachedValueNull = await genericRedisCacheContext.redisClient.get(cacheKeyMaker('id', entity1.getID()));
|
|
73
64
|
expect(cachedValueNull).toBe(null);
|
|
74
65
|
});
|
|
75
66
|
it('caches and restores date fields', async () => {
|
|
76
67
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
77
68
|
const date = new Date();
|
|
78
|
-
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.
|
|
79
|
-
.withAuthorizationResults()
|
|
69
|
+
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creatorWithAuthorizationResults(viewerContext)
|
|
80
70
|
.setField('dateField', date)
|
|
81
71
|
.createAsync());
|
|
82
72
|
expect(entity1.getField('dateField')).toEqual(date);
|
|
83
|
-
const entity2 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
84
|
-
.enforcing()
|
|
85
|
-
.loadByIDAsync(entity1.getID());
|
|
73
|
+
const entity2 = await RedisTestEntity_1.default.loader(viewerContext).loadByIDAsync(entity1.getID());
|
|
86
74
|
expect(entity2.getField('dateField')).toEqual(date);
|
|
87
75
|
// simulate new request
|
|
88
76
|
const vc2 = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
89
|
-
const entity3 = await RedisTestEntity_1.default.loader(vc2).
|
|
77
|
+
const entity3 = await RedisTestEntity_1.default.loader(vc2).loadByIDAsync(entity1.getID());
|
|
90
78
|
expect(entity3.getField('dateField')).toEqual(date);
|
|
91
79
|
});
|
|
92
80
|
it('caches and restores empty string field keys', async () => {
|
|
93
81
|
const viewerContext = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
94
|
-
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.
|
|
95
|
-
.withAuthorizationResults()
|
|
82
|
+
const entity1 = await (0, results_1.enforceAsyncResult)(RedisTestEntity_1.default.creatorWithAuthorizationResults(viewerContext)
|
|
96
83
|
.setField('name', '')
|
|
97
84
|
.createAsync());
|
|
98
|
-
const entity2 = await RedisTestEntity_1.default.loader(viewerContext)
|
|
99
|
-
.enforcing()
|
|
100
|
-
.loadByFieldEqualingAsync('name', '');
|
|
85
|
+
const entity2 = await RedisTestEntity_1.default.loader(viewerContext).loadByFieldEqualingAsync('name', '');
|
|
101
86
|
expect(entity2?.getID()).toEqual(entity1.getID());
|
|
102
87
|
// simulate new request
|
|
103
88
|
const vc2 = new TestViewerContext((0, createRedisIntegrationTestEntityCompanionProvider_1.createRedisIntegrationTestEntityCompanionProvider)(genericRedisCacheContext));
|
|
104
|
-
const entity3 = await RedisTestEntity_1.default.loader(vc2)
|
|
105
|
-
.enforcing()
|
|
106
|
-
.loadByFieldEqualingAsync('name', '');
|
|
89
|
+
const entity3 = await RedisTestEntity_1.default.loader(vc2).loadByFieldEqualingAsync('name', '');
|
|
107
90
|
expect(entity3?.getID()).toEqual(entity1.getID());
|
|
108
91
|
});
|
|
109
92
|
});
|
|
@@ -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,EAAE,QAAQ;YACnC,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,CAAC,aAAa,CAAC;aAChE,
|
|
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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"}
|
|
@@ -70,7 +70,6 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
70
70
|
const genericRedisCacher = new GenericRedisCacher_1.default(genericRedisCacheContext, RedisTestEntity_1.redisTestEntityConfiguration);
|
|
71
71
|
const date = new Date();
|
|
72
72
|
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
73
|
-
.enforcing()
|
|
74
73
|
.setField('name', 'blah')
|
|
75
74
|
.setField('dateField', date)
|
|
76
75
|
.createAsync();
|
|
@@ -106,7 +105,6 @@ describe(GenericRedisCacher_1.default, () => {
|
|
|
106
105
|
const genericRedisCacher = new GenericRedisCacher_1.default(genericRedisCacheContext, RedisTestEntity_1.redisTestEntityConfiguration);
|
|
107
106
|
const date = new Date();
|
|
108
107
|
const entity1Created = await RedisTestEntity_1.default.creator(viewerContext)
|
|
109
|
-
.enforcing()
|
|
110
108
|
.setField('name', 'blah')
|
|
111
109
|
.setField('dateField', date)
|
|
112
110
|
.createAsync();
|
|
@@ -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,EAAE,QAAQ;YACnC,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,CAAC,aAAa,CAAC;aAChE,
|
|
1
|
+
{"version":3,"file":"GenericRedisCacher-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/GenericRedisCacher-integration-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +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).
|
|
36
|
+
await expect(RedisTestEntity_1.default.creator(vc1).setField('name', 'blah').createAsync()).rejects.toThrow(entity_1.EntityCacheAdapterTransientError);
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
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,EAAE,QAAQ;YACnC,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,
|
|
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,EAAE,QAAQ;YACnC,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,WAAW,EAAE,CACpE,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.41.0",
|
|
4
4
|
"description": "Redis cache adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"author": "Expo",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@expo/entity": "^0.
|
|
30
|
+
"@expo/entity": "^0.41.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"ioredis": ">=5"
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"ts-mockito": "^2.6.1",
|
|
49
49
|
"typescript": "^5.7.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "ee4be736a9a0ba580e9af0194e07c9cd36b1c599"
|
|
52
52
|
}
|
|
@@ -104,7 +104,6 @@ describe(GenericRedisCacher, () => {
|
|
|
104
104
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
105
105
|
|
|
106
106
|
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
107
|
-
.enforcing()
|
|
108
107
|
.setField('name', 'blah')
|
|
109
108
|
.createAsync();
|
|
110
109
|
|
|
@@ -120,11 +119,12 @@ describe(GenericRedisCacher, () => {
|
|
|
120
119
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext),
|
|
121
120
|
);
|
|
122
121
|
const [entity1, entity2, entity3] = await Promise.all([
|
|
123
|
-
RedisTestEntity.loader(viewerContext1).
|
|
124
|
-
RedisTestEntity.loader(viewerContext2).
|
|
125
|
-
RedisTestEntity.loader(viewerContext3)
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
RedisTestEntity.loader(viewerContext1).loadByIDAsync(entity1Created.getID()),
|
|
123
|
+
RedisTestEntity.loader(viewerContext2).loadByIDAsync(entity1Created.getID()),
|
|
124
|
+
RedisTestEntity.loader(viewerContext3).loadByFieldEqualingAsync(
|
|
125
|
+
'name',
|
|
126
|
+
entity1Created.getField('name'),
|
|
127
|
+
),
|
|
128
128
|
]);
|
|
129
129
|
|
|
130
130
|
expect(mgetSpy).toHaveBeenCalledTimes(1);
|
|
@@ -141,30 +141,31 @@ describe(GenericRedisCacher, () => {
|
|
|
141
141
|
});
|
|
142
142
|
|
|
143
143
|
const cacheKeyEntity1NameField = cacheKeyMaker('name', entity1Created.getField('name'));
|
|
144
|
-
await RedisTestEntity.loader(viewerContext)
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
await RedisTestEntity.loader(viewerContext).loadByFieldEqualingAsync(
|
|
145
|
+
'name',
|
|
146
|
+
entity1Created.getField('name'),
|
|
147
|
+
);
|
|
147
148
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toEqual(cachedJSON);
|
|
148
149
|
|
|
149
150
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
150
151
|
const nonExistentId = uuidv4();
|
|
151
|
-
const entityNonExistentResult =
|
|
152
|
-
.
|
|
153
|
-
|
|
152
|
+
const entityNonExistentResult =
|
|
153
|
+
await RedisTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
154
|
+
nonExistentId,
|
|
155
|
+
);
|
|
154
156
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
155
157
|
const cacheKeyNonExistent = cacheKeyMaker('id', nonExistentId);
|
|
156
158
|
const nonExistentCachedValue = await redis.get(cacheKeyNonExistent);
|
|
157
159
|
expect(nonExistentCachedValue).toEqual('');
|
|
158
160
|
// load again through entities framework to ensure it reads negative result
|
|
159
|
-
const entityNonExistentResult2 =
|
|
160
|
-
.
|
|
161
|
-
|
|
161
|
+
const entityNonExistentResult2 =
|
|
162
|
+
await RedisTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
163
|
+
nonExistentId,
|
|
164
|
+
);
|
|
162
165
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
163
166
|
|
|
164
167
|
// invalidate from cache to ensure it invalidates correctly in both caches
|
|
165
|
-
await RedisTestEntity.
|
|
166
|
-
.utils()
|
|
167
|
-
.invalidateFieldsAsync(entity1.getAllFields());
|
|
168
|
+
await RedisTestEntity.loaderUtils(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
168
169
|
await expect(redis.get(cacheKeyEntity1)).resolves.toBeNull();
|
|
169
170
|
await expect(redis.get(cacheKeyEntity1NameField)).resolves.toBeNull();
|
|
170
171
|
});
|
|
@@ -47,14 +47,13 @@ describe(GenericRedisCacher, () => {
|
|
|
47
47
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
48
48
|
|
|
49
49
|
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
50
|
-
.enforcing()
|
|
51
50
|
.setField('name', 'blah')
|
|
52
51
|
.createAsync();
|
|
53
52
|
|
|
54
53
|
// loading an entity should put it in cache
|
|
55
|
-
const entity1 = await RedisTestEntity.loader(viewerContext)
|
|
56
|
-
.
|
|
57
|
-
|
|
54
|
+
const entity1 = await RedisTestEntity.loader(viewerContext).loadByIDAsync(
|
|
55
|
+
entity1Created.getID(),
|
|
56
|
+
);
|
|
58
57
|
|
|
59
58
|
const cachedJSON = await (genericRedisCacheContext.redisClient as Redis).get(
|
|
60
59
|
cacheKeyMaker('id', entity1.getID()),
|
|
@@ -68,9 +67,10 @@ describe(GenericRedisCacher, () => {
|
|
|
68
67
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
69
68
|
const nonExistentId = uuidv4();
|
|
70
69
|
|
|
71
|
-
const entityNonExistentResult =
|
|
72
|
-
.
|
|
73
|
-
|
|
70
|
+
const entityNonExistentResult =
|
|
71
|
+
await RedisTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
72
|
+
nonExistentId,
|
|
73
|
+
);
|
|
74
74
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
75
75
|
|
|
76
76
|
const nonExistentCachedValue = await (genericRedisCacheContext.redisClient as Redis).get(
|
|
@@ -79,15 +79,14 @@ describe(GenericRedisCacher, () => {
|
|
|
79
79
|
expect(nonExistentCachedValue).toEqual('');
|
|
80
80
|
|
|
81
81
|
// load again through entities framework to ensure it reads negative result
|
|
82
|
-
const entityNonExistentResult2 =
|
|
83
|
-
.
|
|
84
|
-
|
|
82
|
+
const entityNonExistentResult2 =
|
|
83
|
+
await RedisTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
84
|
+
nonExistentId,
|
|
85
|
+
);
|
|
85
86
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
86
87
|
|
|
87
88
|
// invalidate from cache to ensure it invalidates correctly
|
|
88
|
-
await RedisTestEntity.
|
|
89
|
-
.utils()
|
|
90
|
-
.invalidateFieldsAsync(entity1.getAllFields());
|
|
89
|
+
await RedisTestEntity.loaderUtils(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
91
90
|
const cachedValueNull = await (genericRedisCacheContext.redisClient as Redis).get(
|
|
92
91
|
cacheKeyMaker('id', entity1.getID()),
|
|
93
92
|
);
|
|
@@ -100,23 +99,20 @@ describe(GenericRedisCacher, () => {
|
|
|
100
99
|
);
|
|
101
100
|
const date = new Date();
|
|
102
101
|
const entity1 = await enforceAsyncResult(
|
|
103
|
-
RedisTestEntity.
|
|
104
|
-
.withAuthorizationResults()
|
|
102
|
+
RedisTestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
105
103
|
.setField('dateField', date)
|
|
106
104
|
.createAsync(),
|
|
107
105
|
);
|
|
108
106
|
expect(entity1.getField('dateField')).toEqual(date);
|
|
109
107
|
|
|
110
|
-
const entity2 = await RedisTestEntity.loader(viewerContext)
|
|
111
|
-
.enforcing()
|
|
112
|
-
.loadByIDAsync(entity1.getID());
|
|
108
|
+
const entity2 = await RedisTestEntity.loader(viewerContext).loadByIDAsync(entity1.getID());
|
|
113
109
|
expect(entity2.getField('dateField')).toEqual(date);
|
|
114
110
|
|
|
115
111
|
// simulate new request
|
|
116
112
|
const vc2 = new TestViewerContext(
|
|
117
113
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext),
|
|
118
114
|
);
|
|
119
|
-
const entity3 = await RedisTestEntity.loader(vc2).
|
|
115
|
+
const entity3 = await RedisTestEntity.loader(vc2).loadByIDAsync(entity1.getID());
|
|
120
116
|
expect(entity3.getField('dateField')).toEqual(date);
|
|
121
117
|
});
|
|
122
118
|
|
|
@@ -125,23 +121,21 @@ describe(GenericRedisCacher, () => {
|
|
|
125
121
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext),
|
|
126
122
|
);
|
|
127
123
|
const entity1 = await enforceAsyncResult(
|
|
128
|
-
RedisTestEntity.
|
|
129
|
-
.withAuthorizationResults()
|
|
124
|
+
RedisTestEntity.creatorWithAuthorizationResults(viewerContext)
|
|
130
125
|
.setField('name', '')
|
|
131
126
|
.createAsync(),
|
|
132
127
|
);
|
|
133
|
-
const entity2 = await RedisTestEntity.loader(viewerContext)
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
const entity2 = await RedisTestEntity.loader(viewerContext).loadByFieldEqualingAsync(
|
|
129
|
+
'name',
|
|
130
|
+
'',
|
|
131
|
+
);
|
|
136
132
|
expect(entity2?.getID()).toEqual(entity1.getID());
|
|
137
133
|
|
|
138
134
|
// simulate new request
|
|
139
135
|
const vc2 = new TestViewerContext(
|
|
140
136
|
createRedisIntegrationTestEntityCompanionProvider(genericRedisCacheContext),
|
|
141
137
|
);
|
|
142
|
-
const entity3 = await RedisTestEntity.loader(vc2)
|
|
143
|
-
.enforcing()
|
|
144
|
-
.loadByFieldEqualingAsync('name', '');
|
|
138
|
+
const entity3 = await RedisTestEntity.loader(vc2).loadByFieldEqualingAsync('name', '');
|
|
145
139
|
expect(entity3?.getID()).toEqual(entity1.getID());
|
|
146
140
|
});
|
|
147
141
|
});
|
|
@@ -47,7 +47,6 @@ describe(GenericRedisCacher, () => {
|
|
|
47
47
|
);
|
|
48
48
|
const date = new Date();
|
|
49
49
|
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
50
|
-
.enforcing()
|
|
51
50
|
.setField('name', 'blah')
|
|
52
51
|
.setField('dateField', date)
|
|
53
52
|
.createAsync();
|
|
@@ -94,7 +93,6 @@ describe(GenericRedisCacher, () => {
|
|
|
94
93
|
);
|
|
95
94
|
const date = new Date();
|
|
96
95
|
const entity1Created = await RedisTestEntity.creator(viewerContext)
|
|
97
|
-
.enforcing()
|
|
98
96
|
.setField('name', 'blah')
|
|
99
97
|
.setField('dateField', date)
|
|
100
98
|
.createAsync();
|
|
@@ -40,7 +40,7 @@ describe(GenericRedisCacher, () => {
|
|
|
40
40
|
);
|
|
41
41
|
|
|
42
42
|
await expect(
|
|
43
|
-
RedisTestEntity.creator(vc1).
|
|
43
|
+
RedisTestEntity.creator(vc1).setField('name', 'blah').createAsync(),
|
|
44
44
|
).rejects.toThrow(EntityCacheAdapterTransientError);
|
|
45
45
|
});
|
|
46
46
|
});
|