Skip to content

Commit 5a2c397

Browse files
committed
test(replset-single): test that "getUri" generates an dbname when passed "true"
1 parent 7859d6c commit 5a2c397

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

packages/mongodb-memory-server-core/src/__tests__/replset-single-test.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
import MongoMemoryReplSet, { MongoMemoryReplSetStateEnum } from '../MongoMemoryReplSet';
33
import { MongoClient } from 'mongodb';
44
import MongoMemoryServer from '../MongoMemoryServer';
5+
import * as db_util from '../util/db_util';
6+
import { MongoMemoryInstancePropT } from '../types';
57

68
jasmine.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

Comments
 (0)