@@ -9,6 +9,7 @@ var testCase = require('nodeunit').testCase,
9
9
Cursor = mongodb . Cursor ,
10
10
Collection = mongodb . Collection ,
11
11
Server = mongodb . Server ,
12
+ ReadPreference = mongodb . ReadPreference ,
12
13
ReplSetServers = mongodb . ReplSetServers ,
13
14
ReplicaSetManager = require ( '../../test/tools/replica_set_manager' ) . ReplicaSetManager ,
14
15
Step = require ( "step" ) ;
@@ -27,7 +28,7 @@ exports.setUp = function(callback) {
27
28
RS = new ReplicaSetManager ( { retries :120 ,
28
29
auth :true ,
29
30
arbiter_count :0 ,
30
- secondary_count :1 ,
31
+ secondary_count :2 ,
31
32
passive_count :0 } ) ;
32
33
RS . startSet ( true , function ( err , result ) {
33
34
if ( err != null ) throw err ;
@@ -291,6 +292,55 @@ exports.shouldCorrectlyAuthenticateAndEnsureIndex = function(test) {
291
292
} ) ;
292
293
}
293
294
295
+ exports . shouldCorrectlyAuthenticateAndUseReadPreference = function ( test ) {
296
+ var replSet = new ReplSetServers ( [
297
+ new Server ( RS . host , RS . ports [ 0 ] , { auto_reconnect : true } ) ,
298
+ new Server ( RS . host , RS . ports [ 1 ] , { auto_reconnect : true } ) ,
299
+ ] ,
300
+ { rs_name :RS . name }
301
+ ) ;
302
+
303
+ var db = new Db ( MONGODB , replSet , { safe :false , native_parser : false } ) ;
304
+ db . open ( function ( err , db_p ) {
305
+ test . equal ( null , err ) ;
306
+
307
+ db_p . addUser ( 'test' , 'test' , function ( err , result ) {
308
+ test . equal ( null , err ) ;
309
+
310
+ db_p . authenticate ( 'test' , 'test' , function ( err , replies ) {
311
+ test . equal ( null , err ) ;
312
+
313
+ db_p . collection ( 'userconfirm' ) . find ( { } , { readPreference : ReadPreference . SECONDARY } ) . toArray ( function ( err , items ) {
314
+ console . log ( "---------------------------------------------------------------" )
315
+ console . dir ( err )
316
+ console . dir ( items )
317
+
318
+ db_p . collection ( 'userconfirm' ) . find ( { } , { readPreference : ReadPreference . SECONDARY } ) . toArray ( function ( err , items ) {
319
+ console . log ( "---------------------------------------------------------------" )
320
+ console . dir ( err )
321
+ console . dir ( items )
322
+
323
+ db_p . collection ( 'userconfirm' ) . find ( { } , { readPreference : ReadPreference . SECONDARY } ) . toArray ( function ( err , items ) {
324
+ console . log ( "---------------------------------------------------------------" )
325
+ console . dir ( err )
326
+ console . dir ( items )
327
+
328
+ db_p . collection ( 'userconfirm' ) . find ( { } , { readPreference : ReadPreference . SECONDARY } ) . toArray ( function ( err , items ) {
329
+ console . log ( "---------------------------------------------------------------" )
330
+ console . dir ( err )
331
+ console . dir ( items )
332
+ test . equal ( null , err ) ;
333
+ db_p . close ( ) ;
334
+ test . done ( ) ;
335
+ } ) ;
336
+ } ) ;
337
+ } ) ;
338
+ } ) ;
339
+ } ) ;
340
+ } ) ;
341
+ } ) ;
342
+ }
343
+
294
344
/**
295
345
* Retrieve the server information for the current
296
346
* instance of the db client
0 commit comments