Skip to content

Commit 0878d3a

Browse files
committed
test(replset-single-restart): expand extra logging
1 parent e2c5511 commit 0878d3a

File tree

1 file changed

+30
-32
lines changed

1 file changed

+30
-32
lines changed

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

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -18,46 +18,44 @@ const sleep = (ms: number) => {
1818

1919
describe('single-member replica set', () => {
2020
it('should start multiple times', async () => {
21-
const opts = {
22-
replSet: {
23-
storageEngine: 'wiredTiger',
24-
},
25-
instanceOpts: [
26-
{
27-
port: 27017,
28-
dbPath: tmpDir.name,
29-
},
30-
],
31-
} as MongoMemoryReplSetOpts;
32-
33-
let replSetBefore: MongoMemoryReplSet;
34-
3521
try {
3622
debug.enable('MongoMS:*');
37-
replSetBefore = await MongoMemoryReplSet.create(opts);
23+
const opts = {
24+
replSet: {
25+
storageEngine: 'wiredTiger',
26+
},
27+
instanceOpts: [
28+
{
29+
port: 27017,
30+
dbPath: tmpDir.name,
31+
},
32+
],
33+
} as MongoMemoryReplSetOpts;
34+
35+
const replSetBefore = await MongoMemoryReplSet.create(opts);
36+
37+
// Write real port to config (because 27017 may be busy, we need to get real port)
38+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
39+
opts.instanceOpts[0].port = replSetBefore.servers[0].instanceInfo!.port;
40+
41+
await replSetBefore.stop();
42+
43+
/*
44+
* get-port has a portlocking-feature that keeps ports locked for
45+
* "a minimum of 15 seconds and a maximum of 30 seconds before being released again"
46+
* https://github.com/sindresorhus/get-port#beware
47+
*/
48+
// this test needs to use the *exact same port* again, otherwise Mongod will throw an error "No host described in new configuration ${newPort} for replica set testset maps to this node"
49+
await sleep(30000);
50+
51+
const replSetAfter = await MongoMemoryReplSet.create(opts);
52+
await replSetAfter.stop();
3853
} catch (err) {
3954
console.log('Test failed, printing in-depth error');
4055
console.log(inspect(err, true, 5));
4156
fail(err);
4257
} finally {
4358
debug.disable();
4459
}
45-
46-
// Write real port to config (because 27017 may be busy, we need to get real port)
47-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
48-
opts.instanceOpts[0].port = replSetBefore.servers[0].instanceInfo!.port;
49-
50-
await replSetBefore.stop();
51-
52-
/*
53-
* get-port has a portlocking-feature that keeps ports locked for
54-
* "a minimum of 15 seconds and a maximum of 30 seconds before being released again"
55-
* https://github.com/sindresorhus/get-port#beware
56-
*/
57-
// this test needs to use the *exact same port* again, otherwise Mongod will throw an error "No host described in new configuration ${newPort} for replica set testset maps to this node"
58-
await sleep(30000);
59-
60-
const replSetAfter = await MongoMemoryReplSet.create(opts);
61-
await replSetAfter.stop();
6260
}, 600000);
6361
});

0 commit comments

Comments
 (0)