Skip to content

Commit d1e7ce1

Browse files
Jonas Strasselnodkz
Jonas Strassel
authored andcommitted
test: add basic test for reinit of a single repl set
1 parent 52289e8 commit d1e7ce1

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import MongoMemoryReplSet from '../MongoMemoryReplSet';
2+
import * as tmp from 'tmp';
3+
4+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000;
5+
6+
let tmpDir: tmp.DirResult;
7+
beforeEach(() => {
8+
tmpDir = tmp.dirSync({ prefix: 'reuse-mongo-mem-', unsafeCleanup: true });
9+
});
10+
11+
afterEach(() => {
12+
tmpDir.removeCallback();
13+
});
14+
15+
const sleep = (ms: number) => {
16+
return new Promise((resolve) => setTimeout(resolve, ms));
17+
};
18+
19+
describe('single-member replica set', () => {
20+
it('should start multiple times', async () => {
21+
const opts: any = {
22+
replSet: {
23+
storageEngine: 'wiredTiger',
24+
},
25+
instanceOpts: [
26+
{
27+
port: 27017,
28+
dbPath: tmpDir.name,
29+
},
30+
],
31+
};
32+
33+
const replSetBefore = new MongoMemoryReplSet(opts);
34+
await replSetBefore.waitUntilRunning();
35+
await replSetBefore.stop();
36+
/**
37+
* get-port has a portlocking-feature that keeps ports locked for
38+
* "a minimum of 15 seconds and a maximum of 30 seconds before being released again"
39+
* https://github.com/sindresorhus/get-port#beware
40+
*/
41+
await sleep(30000);
42+
43+
const replSetAfter = new MongoMemoryReplSet(opts);
44+
await replSetAfter.waitUntilRunning();
45+
await replSetAfter.stop();
46+
});
47+
});

0 commit comments

Comments
 (0)