@@ -9,6 +9,7 @@ var testCase = require('nodeunit').testCase,
99 Cursor = mongodb . Cursor ,
1010 Collection = mongodb . Collection ,
1111 Server = mongodb . Server ,
12+ ReadPreference = mongodb . ReadPreference ,
1213 ReplSetServers = mongodb . ReplSetServers ,
1314 ReplicaSetManager = require ( '../../test/tools/replica_set_manager' ) . ReplicaSetManager ,
1415 Step = require ( "step" ) ;
@@ -27,7 +28,7 @@ exports.setUp = function(callback) {
2728 RS = new ReplicaSetManager ( { retries :120 ,
2829 auth :true ,
2930 arbiter_count :0 ,
30- secondary_count :1 ,
31+ secondary_count :2 ,
3132 passive_count :0 } ) ;
3233 RS . startSet ( true , function ( err , result ) {
3334 if ( err != null ) throw err ;
@@ -291,6 +292,55 @@ exports.shouldCorrectlyAuthenticateAndEnsureIndex = function(test) {
291292 } ) ;
292293}
293294
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+
294344/**
295345 * Retrieve the server information for the current
296346 * instance of the db client
0 commit comments