From a132830836713eabe31e77a22f8aa6f812d3722c Mon Sep 17 00:00:00 2001 From: Sebastian Hallum Clarke Date: Wed, 26 Jul 2017 18:11:13 -0400 Subject: [PATCH] fix(errors): use subclassing for MongoNetworkError --- conf.json | 1 - index.js | 1 - lib/auth/gssapi.js | 2 +- lib/auth/mongocr.js | 2 +- lib/auth/plain.js | 2 +- lib/auth/scram.js | 2 +- lib/auth/sspi.js | 2 +- lib/auth/x509.js | 2 +- lib/connection/connection.js | 8 +- lib/connection/logger.js | 2 +- lib/connection/pool.js | 8 +- lib/cursor.js | 16 ++-- lib/error.js | 61 ++++++++++----- lib/network_error.js | 44 ----------- lib/topologies/mongos.js | 6 +- lib/topologies/replset.js | 6 +- lib/topologies/replset_state.js | 2 +- lib/topologies/server.js | 12 +-- lib/wireprotocol/2_4_support.js | 2 +- lib/wireprotocol/2_6_support.js | 2 +- lib/wireprotocol/3_2_support.js | 6 +- lib/wireprotocol/commands.js | 2 +- lib/wireprotocol/shared.js | 2 +- test/tests/functional/error_tests.js | 74 +++++++++++++++++++ test/tests/functional/max_staleness_tests.js | 2 +- .../mongos_server_selection_tests.js | 2 +- .../replset_server_selection_tests.js | 2 +- .../rs_mocks/read_preferences_tests.js | 2 +- test/tests/functional/shared.js | 4 +- 29 files changed, 164 insertions(+), 115 deletions(-) delete mode 100644 lib/network_error.js diff --git a/conf.json b/conf.json index af4709b36..12ce4c7ad 100644 --- a/conf.json +++ b/conf.json @@ -13,7 +13,6 @@ "lib/connection/connection.js", "lib/cursor.js", "lib/error.js", - "lib/network_error.js", "node_modules/bson/lib/bson/binary.js", "node_modules/bson/lib/bson/code.js", "node_modules/bson/lib/bson/db_ref.js", diff --git a/index.js b/index.js index 95213c6ac..4a63acc65 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,6 @@ try { module.exports = { MongoError: require('./lib/error') - , MongoNetworkError: require('./lib/network_error') , Connection: require('./lib/connection/connection') , Server: require('./lib/topologies/server') , ReplSet: require('./lib/topologies/replset') diff --git a/lib/auth/gssapi.js b/lib/auth/gssapi.js index 7fe30265f..dc579b0f8 100644 --- a/lib/auth/gssapi.js +++ b/lib/auth/gssapi.js @@ -3,7 +3,7 @@ var f = require('util').format , require_optional = require('require_optional') , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var AuthSession = function(db, username, password, options) { this.db = db; diff --git a/lib/auth/mongocr.js b/lib/auth/mongocr.js index 14e3c4d0b..f646b4824 100644 --- a/lib/auth/mongocr.js +++ b/lib/auth/mongocr.js @@ -3,7 +3,7 @@ var f = require('util').format , crypto = require('crypto') , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var AuthSession = function(db, username, password) { this.db = db; diff --git a/lib/auth/plain.js b/lib/auth/plain.js index e3fb1a8f7..6cc03e80b 100644 --- a/lib/auth/plain.js +++ b/lib/auth/plain.js @@ -6,7 +6,7 @@ var f = require('util').format , Binary = BSON.Binary , retrieveBSON = require('../connection/utils').retrieveBSON , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var BSON = retrieveBSON(); diff --git a/lib/auth/scram.js b/lib/auth/scram.js index 6142b4b75..128132ea7 100644 --- a/lib/auth/scram.js +++ b/lib/auth/scram.js @@ -4,7 +4,7 @@ var f = require('util').format , crypto = require('crypto') , retrieveBSON = require('../connection/utils').retrieveBSON , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var BSON = retrieveBSON(), Binary = BSON.Binary; diff --git a/lib/auth/sspi.js b/lib/auth/sspi.js index ef4874c3e..2b33bc3e3 100644 --- a/lib/auth/sspi.js +++ b/lib/auth/sspi.js @@ -3,7 +3,7 @@ var f = require('util').format , require_optional = require('require_optional') , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var AuthSession = function(db, username, password, options) { this.db = db; diff --git a/lib/auth/x509.js b/lib/auth/x509.js index 0b75d7978..32f72947a 100644 --- a/lib/auth/x509.js +++ b/lib/auth/x509.js @@ -2,7 +2,7 @@ var f = require('util').format , Query = require('../connection/commands').Query - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; var AuthSession = function(db, username, password) { this.db = db; diff --git a/lib/connection/connection.js b/lib/connection/connection.js index 6bf4a4a68..b4c518edf 100644 --- a/lib/connection/connection.js +++ b/lib/connection/connection.js @@ -10,7 +10,7 @@ var inherits = require('util').inherits , parseHeader = require('../wireprotocol/shared').parseHeader , decompress = require('../wireprotocol/compression').decompress , Response = require('./commands').Response - , MongoNetworkError = require('../network_error') + , MongoNetworkError = require('../error').MongoNetworkError , Logger = require('./logger') , zlib = require('zlib') , Snappy = require('./utils').retrieveSnappy() @@ -190,7 +190,7 @@ var errorHandler = function(self) { // Debug information if(self.logger.isDebug()) self.logger.debug(f('connection %s for [%s:%s] errored out with [%s]', self.id, self.host, self.port, JSON.stringify(err))); // Emit the error - if(self.listeners('error').length > 0) self.emit("error", MongoNetworkError.create(err), self); + if(self.listeners('error').length > 0) self.emit("error", new MongoNetworkError(err), self); } } @@ -201,7 +201,7 @@ var timeoutHandler = function(self) { if(self.logger.isDebug()) self.logger.debug(f('connection %s for [%s:%s] timed out', self.id, self.host, self.port)); // Emit timeout error self.emit("timeout" - , MongoNetworkError.create(f("connection %s to %s:%s timed out", self.id, self.host, self.port)) + , new MongoNetworkError(f("connection %s to %s:%s timed out", self.id, self.host, self.port)) , self); } } @@ -215,7 +215,7 @@ var closeHandler = function(self) { // Emit close event if(!hadError) { self.emit("close" - , MongoNetworkError.create(f("connection %s to %s:%s closed", self.id, self.host, self.port)) + , new MongoNetworkError(f("connection %s to %s:%s closed", self.id, self.host, self.port)) , self); } } diff --git a/lib/connection/logger.js b/lib/connection/logger.js index b8b18187f..087676f87 100644 --- a/lib/connection/logger.js +++ b/lib/connection/logger.js @@ -1,7 +1,7 @@ "use strict"; var f = require('util').format - , MongoError = require('../error'); + , MongoError = require('../error').MongoError; // Filters for classes var classFilters = {}; diff --git a/lib/connection/pool.js b/lib/connection/pool.js index d82762a60..a208f7c3f 100644 --- a/lib/connection/pool.js +++ b/lib/connection/pool.js @@ -3,8 +3,8 @@ var inherits = require('util').inherits, EventEmitter = require('events').EventEmitter, Connection = require('./connection'), - MongoError = require('../error'), - MongoNetworkError = require('../network_error'), + MongoError = require('../error').MongoError, + MongoNetworkError = require('../error').MongoNetworkError, Logger = require('./logger'), f = require('util').format, Query = require('./commands').Query, @@ -496,13 +496,13 @@ function messageHandler(self) { // Parse the message according to the provided options message.parse(workItem); } catch(err) { - return handleOperationCallback(self, workItem.cb, MongoError.create(err)); + return handleOperationCallback(self, workItem.cb, new MongoError(err)); } // Establish if we have an error if(workItem.command && message.documents[0] && (message.documents[0].ok == 0 || message.documents[0]['$err'] || message.documents[0]['errmsg'] || message.documents[0]['code'])) { - return handleOperationCallback(self, workItem.cb, MongoError.create(message.documents[0])); + return handleOperationCallback(self, workItem.cb, new MongoError(message.documents[0])); } // Add the connection details diff --git a/lib/cursor.js b/lib/cursor.js index ee2a97b4d..54fa04e93 100644 --- a/lib/cursor.js +++ b/lib/cursor.js @@ -2,8 +2,8 @@ var Logger = require('./connection/logger') , retrieveBSON = require('./connection/utils').retrieveBSON - , MongoError = require('./error') - , MongoNetworkError = require('./network_error') + , MongoError = require('./error').MongoError + , MongoNetworkError = require('./error').MongoNetworkError , f = require('util').format; var BSON = retrieveBSON(), @@ -195,7 +195,7 @@ Cursor.prototype._find = function(callback) { // Query failure bit set if(result.queryFailure) { - return callback(MongoError.create(result.documents[0]), null); + return callback(new MongoError(result.documents[0]), null); } // Check if we have a command cursor @@ -210,7 +210,7 @@ Cursor.prototype._find = function(callback) { // We have a an error document return the error if(result.documents[0]['$err'] || result.documents[0]['errmsg']) { - return callback(MongoError.create(result.documents[0]), null); + return callback(new MongoError(result.documents[0]), null); } // We have a cursor document @@ -444,7 +444,7 @@ var isConnectionDead = function(self, callback) { self.cursorState.killed = true; self.cursorState.documents = []; self.cursorState.cursorIndex = 0; - callback(MongoNetworkError.create(f('connection to host %s:%s was destroyed', self.pool.host, self.pool.port))) + callback(new MongoNetworkError(f('connection to host %s:%s was destroyed', self.pool.host, self.pool.port))) return true; } @@ -473,7 +473,7 @@ var isCursorDeadButNotkilled = function(self, callback) { */ var isCursorDeadAndKilled = function(self, callback) { if(self.cursorState.dead && self.cursorState.killed) { - handleCallback(callback, MongoError.create('cursor is dead')); + handleCallback(callback, new MongoError('cursor is dead')); return true; } @@ -624,7 +624,7 @@ var nextFunction = function(self, callback) { if(self.cursorState.documents.length == 0 && self.cmd.tailable && Long.ZERO.equals(self.cursorState.cursorId)) { // No more documents in the tailed cursor - return handleCallback(callback, MongoError.create({ + return handleCallback(callback, new MongoError({ message: 'No more documents in tailed cursor' , tailable: self.cmd.tailable , awaitData: self.cmd.awaitData @@ -642,7 +642,7 @@ var nextFunction = function(self, callback) { }); } else if(self.cursorState.documents.length == self.cursorState.cursorIndex && self.cmd.tailable && Long.ZERO.equals(self.cursorState.cursorId)) { - return handleCallback(callback, MongoError.create({ + return handleCallback(callback, new MongoError({ message: 'No more documents in tailed cursor' , tailable: self.cmd.tailable , awaitData: self.cmd.awaitData diff --git a/lib/error.js b/lib/error.js index 04cce72f5..347801b09 100644 --- a/lib/error.js +++ b/lib/error.js @@ -1,16 +1,33 @@ "use strict"; +var util = require('util'); + /** * Creates a new MongoError * @class * @augments Error - * @param {string} message The error message + * @param {Error|string|object} message The error message + * @property {string} message The error message + * @property {string} stack The error call stack * @return {MongoError} A MongoError instance */ function MongoError(message) { this.name = 'MongoError'; - this.message = message; - Error.captureStackTrace(this, MongoError); + + if (message instanceof Error) { + this.message = message.message; + this.stack = message.stack; + } else { + if (typeof message === 'string') { + this.message = message; + } else { + this.message = message.message || message.errmsg || message.$err || 'n/a'; + for (var name in message) { + this[name] = message[name]; + } + } + Error.captureStackTrace(this, MongoError); + } } /** @@ -18,27 +35,31 @@ function MongoError(message) { * @method * @param {Error|string|object} options The options used to create the error. * @return {MongoError} A MongoError instance + * @deprecated Use new MongoError() instead. */ MongoError.create = function(options) { - var err = null; - - if(options instanceof Error) { - err = new MongoError(options.message); - err.stack = options.stack; - } else if(typeof options == 'string') { - err = new MongoError(options); - } else { - err = new MongoError(options.message || options.errmsg || options.$err || "n/a"); - // Other options - for(var name in options) { - err[name] = options[name]; - } - } - - return err; + return new MongoError(options); } // Extend JavaScript error MongoError.prototype = new Error; -module.exports = MongoError; +/** + * Creates a new MongoNetworkError + * @class + * @param {Error|string|object} message The error message + * @property {string} message The error message + * @property {string} stack The error call stack + * @return {MongoNetworkError} A MongoNetworkError instance + * @extends {MongoError} + */ +var MongoNetworkError = function(message) { + MongoError.call(this, message); + this.name = 'MongoNetworkError'; +}; +util.inherits(MongoNetworkError, MongoError); + +module.exports = { + MongoError: MongoError, + MongoNetworkError: MongoNetworkError +}; diff --git a/lib/network_error.js b/lib/network_error.js deleted file mode 100644 index 1c41c4a5b..000000000 --- a/lib/network_error.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; - -/** - * Creates a new MongoNetworkError - * @class - * @augments Error - * @param {string} message The error message - * @return {MongoNetworkError} A MongoNetworkError instance - */ -function MongoNetworkError(message) { - this.name = 'MongoNetworkError'; - this.message = message; - Error.captureStackTrace(this, MongoNetworkError); -} - -/** - * Creates a new MongoNetworkError object - * @method - * @param {Error|string|object} options The options used to create the error. - * @return {MongoNetworkError} A MongoNetworkError instance - */ -MongoNetworkError.create = function(options) { - var err = null; - - if(options instanceof Error) { - err = new MongoNetworkError(options.message); - err.stack = options.stack; - } else if(typeof options == 'string') { - err = new MongoNetworkError(options); - } else { - err = new MongoNetworkError(options.message || options.errmsg || options.$err || "n/a"); - // Other options - for(var name in options) { - err[name] = options[name]; - } - } - - return err; -} - -// Extend JavaScript error -MongoNetworkError.prototype = new Error; - -module.exports = MongoNetworkError; diff --git a/lib/topologies/mongos.js b/lib/topologies/mongos.js index 70d2d14cb..79f254eef 100644 --- a/lib/topologies/mongos.js +++ b/lib/topologies/mongos.js @@ -6,7 +6,7 @@ var inherits = require('util').inherits, BasicCursor = require('../cursor'), Logger = require('../connection/logger'), retrieveBSON = require('../connection/utils').retrieveBSON, - MongoError = require('../error'), + MongoError = require('../error').MongoError, Server = require('./server'), assign = require('../utils').assign, clone = require('./shared').clone, @@ -1022,7 +1022,7 @@ Mongos.prototype.auth = function(mechanism, db) { // Remove the entry from the stored authentication contexts self.s.authenticationContexts.splice(currentContextIndex, 0); // Return error - return callback(MongoError.create({ + return callback(new MongoError({ message: 'authentication fail', errors: errors }), false); } @@ -1095,7 +1095,7 @@ Mongos.prototype.logout = function(dbName, callback) { // Do not block new operations self.authenticating = false; // If we have one or more errors - if(errors.length) return callback(MongoError.create({ + if(errors.length) return callback(new MongoError({ message: f('logout failed against db %s', dbName), errors: errors }), false); diff --git a/lib/topologies/replset.js b/lib/topologies/replset.js index 33d4ed295..cc3bff7d5 100644 --- a/lib/topologies/replset.js +++ b/lib/topologies/replset.js @@ -7,7 +7,7 @@ var inherits = require('util').inherits, BasicCursor = require('../cursor'), retrieveBSON = require('../connection/utils').retrieveBSON, Logger = require('../connection/logger'), - MongoError = require('../error'), + MongoError = require('../error').MongoError, Server = require('./server'), ReplSetState = require('./replset_state'), assign = require('../utils').assign, @@ -1223,7 +1223,7 @@ ReplSet.prototype.auth = function(mechanism, db) { // Remove the entry from the stored authentication contexts self.s.authenticationContexts.splice(currentContextIndex, 0); // Return error - return callback(MongoError.create({ + return callback(new MongoError({ message: 'authentication fail', errors: errors }), false); } @@ -1306,7 +1306,7 @@ ReplSet.prototype.logout = function(dbName, callback) { // Do not block new operations self.authenticating = false; // If we have one or more errors - if(errors.length) return callback(MongoError.create({ + if(errors.length) return callback(new MongoError({ message: f('logout failed against db %s', dbName), errors: errors }), false); diff --git a/lib/topologies/replset_state.js b/lib/topologies/replset_state.js index 738b4e73a..ddea154e6 100644 --- a/lib/topologies/replset_state.js +++ b/lib/topologies/replset_state.js @@ -6,7 +6,7 @@ var inherits = require('util').inherits, EventEmitter = require('events').EventEmitter, Logger = require('../connection/logger'), ReadPreference = require('./read_preference'), - MongoError = require('../error'); + MongoError = require('../error').MongoError; var TopologyType = { 'Single': 'Single', 'ReplicaSetNoPrimary': 'ReplicaSetNoPrimary', diff --git a/lib/topologies/server.js b/lib/topologies/server.js index daece86ba..c0ec10e7b 100644 --- a/lib/topologies/server.js +++ b/lib/topologies/server.js @@ -9,8 +9,8 @@ var inherits = require('util').inherits, retrieveBSON = require('../connection/utils').retrieveBSON, Pool = require('../connection/pool'), Query = require('../connection/commands').Query, - MongoError = require('../error'), - MongoNetworkError = require('../network_error'), + MongoError = require('../error').MongoError, + MongoNetworkError = require('../error').MongoNetworkError, PreTwoSixWireProtocolSupport = require('../wireprotocol/2_4_support'), TwoSixWireProtocolSupport = require('../wireprotocol/2_6_support'), ThreeTwoWireProtocolSupport = require('../wireprotocol/3_2_support'), @@ -198,7 +198,7 @@ function disconnectHandler(self, type, ns, cmd, options, callback) { // If we have no connection error if(!self.s.pool.isConnected()) { - callback(MongoError.create(f("no connection available to server %s", self.name))); + callback(new MongoError(f("no connection available to server %s", self.name))); return true; } } @@ -384,7 +384,7 @@ Server.prototype.connect = function(options) { // Do not allow connect to be called on anything that's not disconnected if(self.s.pool && !self.s.pool.isDisconnected() && !self.s.pool.isDestroyed()) { - throw MongoError.create(f('server instance in invalid state %s', self.s.pool.state)); + throw new MongoError(f('server instance in invalid state %s', self.s.pool.state)); } // Create a pool @@ -476,8 +476,8 @@ Server.prototype.isDestroyed = function() { } function basicWriteValidations(self) { - if(!self.s.pool) return MongoError.create('server instance is not connected'); - if(self.s.pool.isDestroyed()) return MongoError.create('server instance pool was destroyed'); + if(!self.s.pool) return new MongoError('server instance is not connected'); + if(self.s.pool.isDestroyed()) return new MongoError('server instance pool was destroyed'); } function basicReadValidations(self, options) { diff --git a/lib/wireprotocol/2_4_support.js b/lib/wireprotocol/2_4_support.js index b3056fd99..dde17d665 100644 --- a/lib/wireprotocol/2_4_support.js +++ b/lib/wireprotocol/2_4_support.js @@ -10,7 +10,7 @@ var Insert = require('./commands').Insert , Query = require('../connection/commands').Query , f = require('util').format , CommandResult = require('../connection/command_result') - , MongoError = require('../error') + , MongoError = require('../error').MongoError , getReadPreference = require('./shared').getReadPreference; var BSON = retrieveBSON(), diff --git a/lib/wireprotocol/2_6_support.js b/lib/wireprotocol/2_6_support.js index 90e510c80..cbb934e92 100644 --- a/lib/wireprotocol/2_6_support.js +++ b/lib/wireprotocol/2_6_support.js @@ -6,7 +6,7 @@ var copy = require('../connection/utils').copy , GetMore = require('../connection/commands').GetMore , Query = require('../connection/commands').Query , f = require('util').format - , MongoError = require('../error') + , MongoError = require('../error').MongoError , getReadPreference = require('./shared').getReadPreference; var BSON = retrieveBSON(), diff --git a/lib/wireprotocol/3_2_support.js b/lib/wireprotocol/3_2_support.js index c2fefd26f..ba222ef75 100644 --- a/lib/wireprotocol/3_2_support.js +++ b/lib/wireprotocol/3_2_support.js @@ -3,8 +3,8 @@ var Query = require('../connection/commands').Query , retrieveBSON = require('../connection/utils').retrieveBSON , f = require('util').format - , MongoError = require('../error') - , MongoNetworkError = require('../network_error') + , MongoError = require('../error').MongoError + , MongoNetworkError = require('../error').MongoNetworkError , getReadPreference = require('./shared').getReadPreference; var BSON = retrieveBSON(), @@ -195,7 +195,7 @@ WireProtocol.prototype.getMore = function(bson, ns, cursorState, batchSize, raw, // We have an error detected if(r.documents[0].ok == 0) { - return callback(MongoError.create(r.documents[0])); + return callback(new MongoError(r.documents[0])); } // Ensure we have a Long valid cursor id diff --git a/lib/wireprotocol/commands.js b/lib/wireprotocol/commands.js index fb2430b96..ce58283e7 100644 --- a/lib/wireprotocol/commands.js +++ b/lib/wireprotocol/commands.js @@ -1,6 +1,6 @@ "use strict"; -var MongoError = require('../error'); +var MongoError = require('../error').MongoError; // Wire command operation ids var opcodes = require('./shared').opcodes; diff --git a/lib/wireprotocol/shared.js b/lib/wireprotocol/shared.js index 4b596b85f..785a3d66e 100644 --- a/lib/wireprotocol/shared.js +++ b/lib/wireprotocol/shared.js @@ -1,7 +1,7 @@ "use strict" var ReadPreference = require('../topologies/read_preference'), - MongoError = require('../error'); + MongoError = require('../error').MongoError; var MESSAGE_HEADER_SIZE = 16; diff --git a/test/tests/functional/error_tests.js b/test/tests/functional/error_tests.js index b72599d42..753e286a4 100644 --- a/test/tests/functional/error_tests.js +++ b/test/tests/functional/error_tests.js @@ -23,3 +23,77 @@ exports['should return helpful error when geoHaystack fails'] = { }); } }; + +exports['should create a MongoError from string'] = { + metadata: { + requires: { topology: ["single"] } + }, + + test: function(configuration, test) { + var MongoError = require('../../../lib/error.js').MongoError; + + var errorMessage = 'A test error'; + var err = new MongoError(errorMessage); + test.ok(err instanceof Error); + test.equal(err.name, 'MongoError'); + test.equal(err.message, errorMessage); + + test.done(); + } +}; + +exports['should create a MongoError from Error'] = { + metadata: { + requires: { topology: ["single"] } + }, + + test: function(configuration, test) { + var MongoError = require('../../../lib/error.js').MongoError; + + var errorMessage = 'A test error'; + var err = new MongoError(new Error(errorMessage)); + test.ok(err instanceof Error); + test.equal(err.name, 'MongoError'); + test.equal(err.message, errorMessage); + + test.done(); + } +}; + +exports['should create a MongoError from object'] = { + metadata: { + requires: { topology: ["single"] } + }, + + test: function(configuration, test) { + var MongoError = require('../../../lib/error.js').MongoError; + + var errorMessage = 'A test error'; + var err = new MongoError({message: errorMessage, someData: 12345}); + test.ok(err instanceof Error); + test.equal(err.name, 'MongoError'); + test.equal(err.message, errorMessage); + test.equal(err.someData, 12345); + + test.done(); + } +}; + +exports['should create a MongoNetworkError'] = { + metadata: { + requires: { topology: ["single"] } + }, + + test: function(configuration, test) { + var errors = require('../../../lib/error'); + + var errorMessage = 'A test error'; + var err = new errors.MongoNetworkError(errorMessage); + test.ok(err instanceof Error); + test.ok(err instanceof errors.MongoError); + test.equal(err.name, 'MongoNetworkError'); + test.equal(err.message, errorMessage); + + test.done(); + } +}; diff --git a/test/tests/functional/max_staleness_tests.js b/test/tests/functional/max_staleness_tests.js index a25478993..a524f7863 100644 --- a/test/tests/functional/max_staleness_tests.js +++ b/test/tests/functional/max_staleness_tests.js @@ -5,7 +5,7 @@ var f = require('util').format, url = require('url'), ObjectId = require('bson').ObjectId, ReplSetState = require('../../../lib/topologies/replset_state'), - MongoError = require('../../../lib/error'), + MongoError = require('../../../lib/error').MongoError, ReadPreference = require('../../../lib/topologies/read_preference'), Server = require('../../../lib/topologies/server'); diff --git a/test/tests/functional/mongos_server_selection_tests.js b/test/tests/functional/mongos_server_selection_tests.js index 007550342..4e57a6f90 100644 --- a/test/tests/functional/mongos_server_selection_tests.js +++ b/test/tests/functional/mongos_server_selection_tests.js @@ -5,7 +5,7 @@ var f = require('util').format, url = require('url'), ObjectId = require('bson').ObjectId, Mongos = require('../../../lib/topologies/mongos'), - MongoError = require('../../../lib/error'), + MongoError = require('../../../lib/error').MongoError, ReadPreference = require('../../../lib/topologies/read_preference'), Server = require('../../../lib/topologies/server'); diff --git a/test/tests/functional/replset_server_selection_tests.js b/test/tests/functional/replset_server_selection_tests.js index e47d61b38..c0b3d6e90 100644 --- a/test/tests/functional/replset_server_selection_tests.js +++ b/test/tests/functional/replset_server_selection_tests.js @@ -5,7 +5,7 @@ var f = require('util').format, url = require('url'), ObjectId = require('bson').ObjectId, ReplSetState = require('../../../lib/topologies/replset_state'), - MongoError = require('../../../lib/error'), + MongoError = require('../../../lib/error').MongoError, ReadPreference = require('../../../lib/topologies/read_preference'), Server = require('../../../lib/topologies/server'); diff --git a/test/tests/functional/rs_mocks/read_preferences_tests.js b/test/tests/functional/rs_mocks/read_preferences_tests.js index 817b8d9a6..6a3104f04 100644 --- a/test/tests/functional/rs_mocks/read_preferences_tests.js +++ b/test/tests/functional/rs_mocks/read_preferences_tests.js @@ -589,7 +589,7 @@ exports['Should correctly fall back to a secondary server if the readPreference var mockDisconnectHandler = { add: function(opType, ns, ops, options, callback) { // Command issued to replSet will fail immediately if !server.isConnected() - return callback(MongoError.create({message: "no connection available", driver:true})); + return callback(new MongoError({message: "no connection available", driver:true})); }, execute: function() { // method needs to be called, so provide a dummy version diff --git a/test/tests/functional/shared.js b/test/tests/functional/shared.js index 0a563404b..202ad3ca2 100644 --- a/test/tests/functional/shared.js +++ b/test/tests/functional/shared.js @@ -1,7 +1,7 @@ function executeCommand(configuration, db, cmd, options, cb) { var Pool = require('../../../lib/connection/pool') , f = require('util').format - , MongoError = require('../../../lib/error') + , MongoError = require('../../../lib/error').MongoError , bson = require('bson') , Query = require('../../../lib/connection/commands').Query; @@ -40,7 +40,7 @@ function executeCommand(configuration, db, cmd, options, cb) { function locateAuthMethod(configuration, cb) { var Pool = require('../../../lib/connection/pool') - , MongoError = require('../../../lib/error') + , MongoError = require('../../../lib/error').MongoError , bson = require('bson') , f = require('util').format , Query = require('../../../lib/connection/commands').Query;