Skip to content

Commit 94c14b3

Browse files
committed
feat(config): Add instance.dbName option for providing custom db name
1 parent 99e3883 commit 94c14b3

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ All options are optional.
4747
const mongod = new MongodbMemoryServer({
4848
instance: {
4949
port?: ?number, // by default choose any free port
50+
dbName?: string, // by default generate random dbName
5051
dbPath?: string, // by default create in temp directory
5152
storageEngine?: string, // by default `ephemeralForTest`
5253
debug?: boolean, // by default false

src/MongoMemoryServer.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -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 = {
3233
export 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

4954
export 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

Comments
 (0)