22const expect = require ( 'chai' ) . expect ;
33const MongoMilestoneDB = require ( '../lib/mongo-milestone-db' ) ;
44const SnapshotFactory = require ( './factories/snapshot-factory' ) ;
5+ const mongodbRequire = require ( '../lib/mongodb' ) ;
56
67const MONGO_URL = process . env . TEST_MONGO_URL || 'mongodb://localhost:27017/test' ;
78
8- [ 'mongodb2' , 'mongodb3' ] . forEach ( ( driver ) => {
9+ [ 'mongodb2' , 'mongodb3' , 'mongodb4' ] . forEach ( ( driver ) => {
910 const mongodb = require ( driver ) ;
1011
1112 function create ( options , callback ) {
@@ -20,7 +21,13 @@ const MONGO_URL = process.env.TEST_MONGO_URL || 'mongodb://localhost:27017/test'
2021 mongo : ( shareDbCallback ) => {
2122 let mongo ;
2223
23- mongodb . connect ( MONGO_URL )
24+ const connect = ( url ) => {
25+ if ( typeof mongodb . connect === 'function' ) return mongodb . connect ( url ) ;
26+ const client = new mongodb . MongoClient ( MONGO_URL ) ;
27+ return client . connect ( ) ;
28+ } ;
29+
30+ connect ( MONGO_URL )
2431 . then ( ( mongoConnection ) => {
2532 mongo = mongoConnection ;
2633 return MongoMilestoneDB . _isLegacyMongoClient ( mongo )
@@ -38,6 +45,10 @@ const MONGO_URL = process.env.TEST_MONGO_URL || 'mongodb://localhost:27017/test'
3845 }
3946
4047 describe ( `[${ driver } driver]` , ( ) => {
48+ beforeEach ( ( ) => {
49+ mongodbRequire . mongodb = mongodb ;
50+ } ) ;
51+
4152 require ( 'sharedb/test/milestone-db' ) ( { create : create } ) ;
4253
4354 describe ( 'MongoMilestoneDB' , ( ) => {
@@ -249,7 +260,7 @@ const MONGO_URL = process.env.TEST_MONGO_URL || 'mongodb://localhost:27017/test'
249260 beforeEach ( ( ) => {
250261 const options = { interval : 100 } ;
251262 db = new MongoMilestoneDB ( MONGO_URL , options ) ;
252- return db . _mongoPromise . then ( mongo => mongo . db ( ) . dropDatabase ( ) ) ;
263+ return db . _db ( ) . then ( mongo => mongo . dropDatabase ( ) ) ;
253264 } ) ;
254265
255266 afterEach ( ( done ) => {
0 commit comments