22import MongoMemoryReplSet , { MongoMemoryReplSetStateEnum } from '../MongoMemoryReplSet' ;
33import { MongoClient } from 'mongodb' ;
44import MongoMemoryServer from '../MongoMemoryServer' ;
5+ import * as db_util from '../util/db_util' ;
6+ import { MongoMemoryInstancePropT } from '../types' ;
57
68jasmine . DEFAULT_TIMEOUT_INTERVAL = 600000 ;
79
@@ -13,7 +15,7 @@ describe('single server replset', () => {
1315 await replSet . stop ( ) ;
1416 } ) ;
1517
16- it ( 'should be able to get connection string to specific db' , async ( ) => {
18+ it ( '"getUri" should be able to get connection string to specific db' , async ( ) => {
1719 const replSet = await MongoMemoryReplSet . create ( ) ;
1820 const uri = replSet . getUri ( 'other' ) ;
1921 expect ( uri . split ( ',' ) . length ) . toEqual ( 1 ) ;
@@ -23,6 +25,19 @@ describe('single server replset', () => {
2325 await replSet . stop ( ) ;
2426 } ) ;
2527
28+ it ( '"getUri" should be able to generate an dbName' , async ( ) => {
29+ jest . spyOn ( db_util , 'generateDbName' ) ;
30+ const replSet = await MongoMemoryReplSet . create ( ) ;
31+ const uri = replSet . getUri ( true ) ;
32+ expect ( uri . split ( ',' ) . length ) . toEqual ( 1 ) ;
33+ // regex for "uuidv4" ("17b00a74-e1f9-4aaa-86a1-aee757c8d3a6")
34+ expect ( / \/ .{ 8 } - .{ 4 } - .{ 4 } - .{ 4 } - .{ 12 } \? / i. test ( uri ) ) . toBeTruthy ( ) ;
35+ expect ( uri . includes ( 'replicaSet=testset' ) ) . toBeTruthy ( ) ;
36+ expect ( db_util . generateDbName ) . toHaveBeenCalledTimes ( 3 ) ; // once in "new MongoMemoryReplSet" (setter), once in "_startUpInstance", once in getUri
37+
38+ await replSet . stop ( ) ;
39+ } ) ;
40+
2641 it ( 'should be able to get dbName' , async ( ) => {
2742 const replSet = new MongoMemoryReplSet ( { replSet : { dbName : 'static' } } ) ;
2843 expect ( replSet . replSetOpts . dbName ) . toEqual ( 'static' ) ;
@@ -331,4 +346,15 @@ describe('MongoMemoryReplSet', () => {
331346 expect ( err . message ) . toEqual ( 'Timed out after 1ms while waiting for an Primary' ) ;
332347 }
333348 } ) ;
349+
350+ it ( '"getInstanceOpts" should return "storageEngine" if in baseOpts' , ( ) => {
351+ const replSet = new MongoMemoryReplSet ( ) ;
352+
353+ // @ts -expect-error
354+ expect ( replSet . getInstanceOpts ( { storageEngine : 'wiredTiger' } ) ) . toMatchObject <
355+ MongoMemoryInstancePropT // this is needed, otherwise no ts error when "storageEngine" might get changed
356+ > ( {
357+ storageEngine : 'wiredTiger' ,
358+ } ) ;
359+ } ) ;
334360} ) ;
0 commit comments