@@ -72,10 +72,14 @@ suite('updateSecret', function() {
72
72
} ) ;
73
73
74
74
function channel_test_fn ( method ) {
75
- return function ( name , chfun ) {
75
+ return function ( name , options , chfun ) {
76
+ if ( arguments . length === 2 ) {
77
+ chfun = options ;
78
+ options = { } ;
79
+ }
76
80
test ( name , function ( done ) {
77
81
connect ( kCallback ( function ( c ) {
78
- c [ method ] ( kCallback ( function ( ch ) {
82
+ c [ method ] ( options , kCallback ( function ( ch ) {
79
83
chfun ( ch , done ) ;
80
84
} , done ) ) ;
81
85
} , done ) ) ;
@@ -210,6 +214,33 @@ suite('sending messages', function() {
210
214
} ) ;
211
215
} ) ;
212
216
217
+ var channelOptions = { } ;
218
+
219
+ channel_test ( 'find high watermark' , function ( ch , done ) {
220
+ var msg = randomString ( ) ;
221
+ var baseline = 0 ;
222
+ ch . assertQueue ( '' , { exclusive : true } , function ( e , q ) {
223
+ if ( e !== null ) return done ( e ) ;
224
+ while ( ch . sendToQueue ( q . queue , Buffer . from ( msg ) ) ) {
225
+ baseline ++ ;
226
+ } ;
227
+ channelOptions . highWaterMark = baseline * 2 ;
228
+ done ( ) ;
229
+ } )
230
+ } ) ;
231
+
232
+ channel_test ( 'set high watermark' , channelOptions , function ( ch , done ) {
233
+ var msg = randomString ( ) ;
234
+ ch . assertQueue ( '' , { exclusive : true } , function ( e , q ) {
235
+ if ( e !== null ) return done ( e ) ;
236
+ var ok ;
237
+ for ( var i = 0 ; i < channelOptions . highWaterMark ; i ++ ) {
238
+ ok = ch . sendToQueue ( q . queue , Buffer . from ( msg ) ) ;
239
+ assert . equal ( ok , true ) ;
240
+ }
241
+ done ( ) ;
242
+ } ) ;
243
+ } ) ;
213
244
} ) ;
214
245
215
246
suite ( 'ConfirmChannel' , function ( ) {
@@ -228,6 +259,34 @@ suite('ConfirmChannel', function() {
228
259
ch . waitForConfirms ( done ) ;
229
260
} ) ;
230
261
262
+ var channelOptions = { } ;
263
+
264
+ confirm_channel_test ( 'find high watermark' , function ( ch , done ) {
265
+ var msg = randomString ( ) ;
266
+ var baseline = 0 ;
267
+ ch . assertQueue ( '' , { exclusive : true } , function ( e , q ) {
268
+ if ( e !== null ) return done ( e ) ;
269
+ while ( ch . sendToQueue ( q . queue , Buffer . from ( msg ) ) ) {
270
+ baseline ++ ;
271
+ } ;
272
+ channelOptions . highWaterMark = baseline * 2 ;
273
+ done ( ) ;
274
+ } )
275
+ } ) ;
276
+
277
+ confirm_channel_test ( 'set high watermark' , channelOptions , function ( ch , done ) {
278
+ var msg = randomString ( ) ;
279
+ ch . assertQueue ( '' , { exclusive : true } , function ( e , q ) {
280
+ if ( e !== null ) return done ( e ) ;
281
+ var ok ;
282
+ for ( var i = 0 ; i < channelOptions . highWaterMark ; i ++ ) {
283
+ ok = ch . sendToQueue ( q . queue , Buffer . from ( msg ) ) ;
284
+ assert . equal ( ok , true ) ;
285
+ }
286
+ done ( ) ;
287
+ } ) ;
288
+ } ) ;
289
+
231
290
} ) ;
232
291
233
292
suite ( "Error handling" , function ( ) {
0 commit comments