@@ -7,7 +7,7 @@ var redis = config.redis;
7
7
8
8
describe ( "return_buffers" , function ( ) {
9
9
10
- helper . allTests ( function ( parser , ip ) {
10
+ helper . allTests ( function ( parser , ip , basicArgs ) {
11
11
12
12
describe ( "using " + parser + " and " + ip , function ( ) {
13
13
var client ;
@@ -229,6 +229,58 @@ describe("return_buffers", function () {
229
229
} ) ;
230
230
} ) ;
231
231
} ) ;
232
+
233
+ describe ( 'publish/subscribe' , function ( done ) {
234
+ var pub ;
235
+ var sub ;
236
+ var channel = "test channel" ;
237
+ var message = new Buffer ( "test message" ) ;
238
+
239
+ var args = config . configureClient ( parser , ip , {
240
+ return_buffers : true
241
+ } ) ;
242
+
243
+ beforeEach ( function ( done ) {
244
+ var pubConnected ;
245
+ var subConnected ;
246
+
247
+ pub = redis . createClient . apply ( redis . createClient , basicArgs ) ;
248
+ sub = redis . createClient . apply ( redis . createClient , args ) ;
249
+ pub . once ( "connect" , function ( ) {
250
+ pub . flushdb ( function ( ) {
251
+ pubConnected = true ;
252
+ if ( subConnected ) {
253
+ done ( ) ;
254
+ }
255
+ } ) ;
256
+ } ) ;
257
+ sub . once ( "connect" , function ( ) {
258
+ subConnected = true ;
259
+ if ( pubConnected ) {
260
+ done ( ) ;
261
+ }
262
+ } ) ;
263
+ } ) ;
264
+
265
+ it ( 'receives buffer messages' , function ( done ) {
266
+ sub . on ( "subscribe" , function ( chnl , count ) {
267
+ pub . publish ( channel , message ) ;
268
+ } ) ;
269
+
270
+ sub . on ( "message" , function ( chnl , msg ) {
271
+ assert . strictEqual ( true , Buffer . isBuffer ( msg ) ) ;
272
+ assert . strictEqual ( "<Buffer 74 65 73 74 20 6d 65 73 73 61 67 65>" , msg . inspect ( ) ) ;
273
+ return done ( ) ;
274
+ } ) ;
275
+
276
+ sub . subscribe ( channel ) ;
277
+ } ) ;
278
+
279
+ afterEach ( function ( ) {
280
+ sub . end ( ) ;
281
+ pub . end ( ) ;
282
+ } ) ;
283
+ } ) ;
232
284
} ) ;
233
285
} ) ;
234
- } ) ;
286
+ } ) ;
0 commit comments