How should I create custom modules that require a mongodb connection?

I'm working on a web app with nodejs, express, and mongodb.

In my 'main' file where I listed for API calls, I include a Users class that has methods like Users.authenticate(userObject, callback), and Users.getById(userId, callback).

Sorry for this long code snippet. It's just a snippet of my users class.

function Users (db) {
  if (!db) {
    return {'message': 'creating an instance of Users requires a database'}
  } else {
    this.db = db;
    return this;
  }
}

Users.prototype.authenticate = function (user, callback) {
  if (!user.username) {
    return {'message': 'Users.authenticate(user, callback) requires user.username'};
  } else if (!user.password) {
    return {'message': 'Users.authenticate(user, callback) requires user.password'};
  } else if (!callback) {
    return {'message': 'Users.authenticate(user, callback) requires callback(err, user)'};
  }

  this.db.collection('users', function (err, collection)  {
    if (err) {return {'message': 'could not open users collection'}};

    /* query for the user argument */
    collection.findOne(user, function (err, doc) {
      if (!err) {
        if (!doc) {
          callback({'message': 'user does not exist'}, null);
        } else {
          callback(null, doc);
        }
      } else {
        callback({'message': 'error finding user'}, null);
      }

    });
  });
};
exports.Users = Users;

That's it

I pass an open DB connection to my Users class, and make a call like the following:

var server = new mongo.Server('localhost', '27017', {auto_reconnect: true});
var db = new mongo.Db('supportdash', server, {"fsync": true});

// open connection to be, init users
db.open(function (err, db) {
  var users = new Users(db);
  users.authenticate({"username": "admin", "password": "password"}, function (err, user) {
    // do something with the error, or user object
  });
});

Now for my questions

  1. Should I be passing an open db connection, or should I be passing the info needed (localhost, port, database name) for the Users class to manage its own connection?

  2. I tried to set up testing with jasmine-node, but I ended up with a lot of problems with async database calls. I wanted to add a user, then test that Users.authenticate was working. I used Jasmines runs() and waitsfor() async helpers, but I could not get it to work. I then ran into an issue that took me a while to debug (with a different class), and testing would have saved me a lot of time. Any advice on how I would test my classes that interact with a mongodb database?