@@ -242,6 +242,93 @@ test('custom ioredis client that is already connected', (t) => {
242
242
} )
243
243
} )
244
244
245
+ test ( 'If closeClient is enabled, close the client.' , ( t ) => {
246
+ t . plan ( 10 )
247
+ const fastify = Fastify ( )
248
+ const Redis = require ( 'ioredis' )
249
+ const redis = new Redis ( { host : 'localhost' , port : 6379 } )
250
+
251
+ redis . set ( 'key' , 'value' , ( err ) => {
252
+ t . error ( err )
253
+ redis . get ( 'key' , ( err , val ) => {
254
+ t . error ( err )
255
+ t . equal ( val , 'value' )
256
+
257
+ fastify . register ( fastifyRedis , {
258
+ client : redis ,
259
+ closeClient : true
260
+ } )
261
+
262
+ fastify . ready ( ( err ) => {
263
+ t . error ( err )
264
+ t . equal ( fastify . redis , redis )
265
+
266
+ fastify . redis . set ( 'key2' , 'value2' , ( err ) => {
267
+ t . error ( err )
268
+ fastify . redis . get ( 'key2' , ( err , val ) => {
269
+ t . error ( err )
270
+ t . equal ( val , 'value2' )
271
+
272
+ const originalQuit = fastify . redis . quit
273
+ fastify . redis . quit = ( callback ) => {
274
+ t . pass ( 'redis client closed' )
275
+ originalQuit . call ( fastify . redis , callback )
276
+ }
277
+
278
+ fastify . close ( function ( err ) {
279
+ t . error ( err )
280
+ } )
281
+ } )
282
+ } )
283
+ } )
284
+ } )
285
+ } )
286
+ } )
287
+
288
+ test ( 'If closeClient is enabled, close the client namespace.' , ( t ) => {
289
+ t . plan ( 10 )
290
+ const fastify = Fastify ( )
291
+ const Redis = require ( 'ioredis' )
292
+ const redis = new Redis ( { host : 'localhost' , port : 6379 } )
293
+
294
+ redis . set ( 'key' , 'value' , ( err ) => {
295
+ t . error ( err )
296
+ redis . get ( 'key' , ( err , val ) => {
297
+ t . error ( err )
298
+ t . equal ( val , 'value' )
299
+
300
+ fastify . register ( fastifyRedis , {
301
+ client : redis ,
302
+ namespace : 'foo' ,
303
+ closeClient : true
304
+ } )
305
+
306
+ fastify . ready ( ( err ) => {
307
+ t . error ( err )
308
+ t . equal ( fastify . redis . foo , redis )
309
+
310
+ fastify . redis . foo . set ( 'key2' , 'value2' , ( err ) => {
311
+ t . error ( err )
312
+ fastify . redis . foo . get ( 'key2' , ( err , val ) => {
313
+ t . error ( err )
314
+ t . equal ( val , 'value2' )
315
+
316
+ const originalQuit = fastify . redis . foo . quit
317
+ fastify . redis . foo . quit = ( callback ) => {
318
+ t . pass ( 'redis client closed' )
319
+ originalQuit . call ( fastify . redis . foo , callback )
320
+ }
321
+
322
+ fastify . close ( function ( err ) {
323
+ t . error ( err )
324
+ } )
325
+ } )
326
+ } )
327
+ } )
328
+ } )
329
+ } )
330
+ } )
331
+
245
332
test ( 'fastify.redis.test should throw with duplicate connection namespaces' , ( t ) => {
246
333
t . plan ( 1 )
247
334
0 commit comments