@@ -13,6 +13,7 @@ export type MongoMemoryServerOptsT = {
1313 instance : {
1414 port ?: ?number ,
1515 dbPath ?: string ,
16+ dbName ?: string ,
1617 storageEngine ?: string ,
1718 debug ?: boolean | Function ,
1819 } ,
@@ -32,6 +33,7 @@ export type MongoMemoryServerOptsT = {
3233export type MongoInstanceDataT = {
3334 port : number ,
3435 dbPath : string ,
36+ dbName : string ,
3537 uri : string ,
3638 storageEngine : string ,
3739 childProcess : ChildProcess ,
@@ -41,9 +43,12 @@ export type MongoInstanceDataT = {
4143 } ,
4244} ;
4345
44- async function generateConnectionString ( port : number , dbName : ?string ) : Promise < string > {
45- const db = dbName || ( await uuid ( ) ) ;
46- return `mongodb://localhost:${ port } /${ db } ` ;
46+ async function generateDbName ( dbName ?: string ) : Promise < string > {
47+ return dbName || uuid ( ) ;
48+ }
49+
50+ async function generateConnectionString ( port : number , dbName : string ) : Promise < string > {
51+ return `mongodb://localhost:${ port } /${ dbName } ` ;
4752}
4853
4954export default class MongoMemoryServer {
@@ -106,7 +111,8 @@ export default class MongoMemoryServer {
106111 data . port = await getport ( instOpts . port ) ;
107112 this . debug = Debug ( `Mongo[${ data . port } ]` ) ;
108113 this . debug . enabled = ! ! this . opts . debug ;
109- data . uri = await generateConnectionString ( data . port ) ;
114+ data . dbName = await generateDbName ( instOpts . dbName ) ;
115+ data . uri = await generateConnectionString ( data . port , data . dbName ) ;
110116 data . storageEngine = instOpts . storageEngine || 'ephemeralForTest' ;
111117 if ( instOpts . dbPath ) {
112118 data . dbPath = instOpts . dbPath ;
@@ -172,7 +178,7 @@ export default class MongoMemoryServer {
172178 return generateConnectionString ( port , otherDbName ) ;
173179 }
174180 // generate new random db name
175- return generateConnectionString ( port ) ;
181+ return generateConnectionString ( port , await generateDbName ( ) ) ;
176182 }
177183
178184 return uri ;
0 commit comments