@@ -137,21 +137,6 @@ describe('RedisCacheService', () => {
137
137
expect ( ttl ) . toBeLessThanOrEqual ( maxDeviation ) ;
138
138
} ) ;
139
139
140
- it ( 'Setting key throws on expire' , async ( ) => {
141
- const cacheDir = new CacheDir (
142
- faker . string . alphanumeric ( ) ,
143
- faker . string . sample ( ) ,
144
- ) ;
145
-
146
- // Expiration time out of range to force an error
147
- await expect (
148
- redisCacheService . hSet ( cacheDir , '' , Number . MAX_VALUE + 1 ) ,
149
- ) . rejects . toThrow ( ) ;
150
-
151
- const storedValue = await redisClient . hGet ( cacheDir . key , cacheDir . field ) ;
152
- expect ( storedValue ) . toBeNull ( ) ;
153
- } ) ;
154
-
155
140
it ( 'Getting key gets the stored value' , async ( ) => {
156
141
const cacheDir = new CacheDir (
157
142
faker . string . alphanumeric ( ) ,
@@ -298,4 +283,44 @@ describe('RedisCacheService', () => {
298
283
expect ( ttl ) . toBeGreaterThan ( 0 ) ;
299
284
expect ( ttl ) . toBeLessThanOrEqual ( Number . MAX_SAFE_INTEGER ) ;
300
285
} ) ;
286
+
287
+ it ( 'Setting key with TTL larger than MAX_TTL enforces MAX_TTL limit' , async ( ) => {
288
+ const cacheDir = new CacheDir (
289
+ faker . string . alphanumeric ( ) ,
290
+ faker . string . sample ( ) ,
291
+ ) ;
292
+ const value = fakeJson ( ) ;
293
+ const expireTime = MAX_TTL + faker . number . int ( { min : 1000 , max : 10000 } ) ;
294
+
295
+ await redisCacheService . hSet ( cacheDir , value , expireTime , 0 ) ;
296
+
297
+ const storedValue = await redisClient . hGet ( cacheDir . key , cacheDir . field ) ;
298
+ const ttl = await redisClient . ttl ( cacheDir . key ) ;
299
+ expect ( storedValue ) . toEqual ( value ) ;
300
+ expect ( ttl ) . toBeGreaterThan ( 0 ) ;
301
+ expect ( ttl ) . toBeLessThanOrEqual ( MAX_TTL ) ;
302
+ } ) ;
303
+
304
+ it ( 'Increment with TTL larger than MAX_TTL enforces MAX_TTL limit' , async ( ) => {
305
+ const key = faker . string . alphanumeric ( ) ;
306
+ const expireTime = MAX_TTL + faker . number . int ( { min : 1000 , max : 10000 } ) ;
307
+
308
+ await redisCacheService . increment ( key , expireTime , 0 ) ;
309
+
310
+ const ttl = await redisClient . ttl ( key ) ;
311
+ expect ( ttl ) . toBeGreaterThan ( 0 ) ;
312
+ expect ( ttl ) . toBeLessThanOrEqual ( MAX_TTL ) ;
313
+ } ) ;
314
+
315
+ it ( 'SetCounter with TTL larger than MAX_TTL enforces MAX_TTL limit' , async ( ) => {
316
+ const key = faker . string . alphanumeric ( ) ;
317
+ const value = faker . number . int ( { min : 1 , max : 100 } ) ;
318
+ const expireTime = MAX_TTL + faker . number . int ( { min : 1000 , max : 10000 } ) ;
319
+
320
+ await redisCacheService . setCounter ( key , value , expireTime , 0 ) ;
321
+
322
+ const ttl = await redisClient . ttl ( key ) ;
323
+ expect ( ttl ) . toBeGreaterThan ( 0 ) ;
324
+ expect ( ttl ) . toBeLessThanOrEqual ( MAX_TTL ) ;
325
+ } ) ;
301
326
} ) ;
0 commit comments