test.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. var ReplSet = require('./lib2/topologies/replset'),
  2. ReadPreference = require('./lib2/topologies/read_preference');
  3. // Attempt to connect
  4. var server = new ReplSet([{
  5. host: 'localhost', port: 31000
  6. }, {
  7. host: 'localhost', port: 31001
  8. }], {
  9. setName: 'rs'
  10. });
  11. function executeCursors(_server, cb) {
  12. var count = 100;
  13. for(var i = 0; i < 100; i++) {
  14. // Execute the write
  15. var cursor = _server.cursor('test.test', {
  16. find: 'test.test'
  17. , query: {a:1}
  18. }, {readPreference: new ReadPreference('secondary')});
  19. // Get the first document
  20. cursor.next(function(err, doc) {
  21. count = count - 1;
  22. if(err) console.dir(err)
  23. if(count == 0) return cb();
  24. });
  25. }
  26. }
  27. server.on('connect', function(_server) {
  28. console.log("---------------------------------- 0")
  29. // Attempt authentication
  30. _server.auth('scram-sha-1', 'admin', 'root', 'root', function(err, r) {
  31. console.log("---------------------------------- 1")
  32. // console.dir(err)
  33. // console.dir(r)
  34. _server.insert('test.test', [{a:1}], function(err, r) {
  35. console.log("---------------------------------- 2")
  36. console.dir(err)
  37. if(r)console.dir(r.result)
  38. var name = null;
  39. _server.on('joined', function(_t, _server) {
  40. if(name == _server.name) {
  41. console.log("=========== joined :: " + _t + " :: " + _server.name)
  42. executeCursors(_server, function() {
  43. });
  44. }
  45. })
  46. // var s = _server.s.replicaSetState.secondaries[0];
  47. // s.destroy({emitClose:true});
  48. executeCursors(_server, function() {
  49. console.log("============== 0")
  50. // Attempt to force a server reconnect
  51. var s = _server.s.replicaSetState.secondaries[0];
  52. name = s.name;
  53. s.destroy({emitClose:true});
  54. // console.log("============== 1")
  55. // _server.destroy();
  56. // test.done();
  57. });
  58. });
  59. });
  60. });
  61. server.connect();