File tree 1 file changed +47
-0
lines changed
packages/mongodb-memory-server-core/src/__tests__
1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
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
+ } ) ;
You can’t perform that action at this time.
0 commit comments